首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >从零构建并使用自己的pip包

从零构建并使用自己的pip包

作者头像
用户2423478
发布2025-10-31 19:01:43
发布2025-10-31 19:01:43
1430
举报
文章被收录于专栏:具身小站具身小站

1. pip默认源

pip安装的包默认来自Python Package Index (PyPI),这是Python官方的第三方软件包仓库:

  • 网址:https://pypi.org
  • 当运行pip install 包名时,pip会从PyPI下载并安装相应包
  • PyPI是全球最大的Python包仓库,包含超过50万个开源包

查看当前pip源配置

代码语言:javascript
复制
pip config list

2. 配置pip镜像源

在国内,由于网络原因,可以使用国内镜像源加速下载,常用镜像地址如下:

供应商

镜像地址

特点

清华大学

https://pypi.tuna.tsinghua.edu.cn/simple

更新频繁,速度稳定,推荐首选

阿里云

https://mirrors.aliyun.com/pypi/simple/

阿里云维护,速度极快

豆瓣

https://pypi.douban.com/simple/

老牌镜像,稳定可靠

中国科学技术大学

https://pypi.mirrors.ustc.edu.cn/simple/

教育网优化,校外也可用

华为云

https://repo.huaweicloud.com/repository/pypi/simple

企业级服务,稳定性高

腾讯云

https://mirrors.cloud.tencent.com/pypi/simple

新兴镜像,速度不错

网易

http://mirrors.163.com/pypi/simple/

网易维护,速度稳定

百度

https://mirror.baidu.com/pypi/simple

百度维护,较新加入

代码语言:javascript
复制
# 临时使用镜像源(单次安装)
pip install 包名 -i 镜像地址

# 永久配置镜像源
pip config setglobal.index-url 镜像地址
  • 使用镜像源时,确保添加trusted-host配置,避免SSL验证问题
  • 企业环境中可能需要配置代理:pip install 包名 --proxy=http://user:password@proxy:port
  • 对于conda环境,建议先激活环境再使用pip,避免包安装到错误位置
在这里插入图片描述
在这里插入图片描述

3. 本地通过pip安装Python包

代码语言:javascript
复制
# 在包目录中(包含setup.py的目录)
pip install -e .  # 开发模式安装(可编辑)
# 或
pip install .     # 正常安装
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 发布包到PyPI(供所有人通过pip安装)

4.1 先在【PyPI官网:https://pypi.org】 注册账号,并申请发布Token 4.2 安装打包工具:

代码语言:javascript
复制
pip install setuptools wheel twine build

4.3 确认项目结构: mypackage/ ├── mypackage/ │ ├── init.py │ └── xxx.py ├── pyproject.toml └── README.md ├── LICENSE

在这里插入图片描述
在这里插入图片描述

当前以一个简单的加减法计算器示例,main.py内容如下:

代码语言:javascript
复制
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
def main():
    print("欢迎使用加减法计算器!")
    while True:
        try:
            expr = input("请输入加减表达式(如 3+5 或 10-2),或输入 q 退出: ")
            if expr.strip().lower() == 'q':
                print("退出计算器。")
                break
            if '+' in expr:
                parts = expr.split('+')
                result = float(parts[0]) + float(parts[1])
            elif '-' in expr:
                parts = expr.split('-')
                result = float(parts[0]) - float(parts[1])
            else:
                print("仅支持加法和减法。")
                continue
            print(f"结果: {result}")
        except Exception as e:
            print(f"输入有误: {e}")
if __name__ == "__main__":
    main()

pyproject.toml内容:

代码语言:javascript
复制
[build-system]
requires = ["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "calculator-suoxd"
version = "0.1.1"
description = "A simple calculator for elementary school students to practice addition and subtraction."
authors = [{ name = "Zacsuo", email = "suoxd123@126.com" }]
license = { file = "LICENSE" }
readme = "README.md"
requires-python = ">=3.6"
dependencies = []
[project.scripts]
calculator = "calculator.main:main" 

4.4 构建分发包

代码语言:javascript
复制
# 清理旧的构建文件
rmdir /s /q dist build  
# 构建源分发包和wheel
python -m build
在这里插入图片描述
在这里插入图片描述

4.5 上传到PyPI:

代码语言:javascript
复制
# 测试环境
twine upload --repository testpypi dist/*
# 正式环境
twine upload dist/*
  • 可能会有名字冲突,则会报错误,对项目重新命名即可:(可以通过这个地址查询:https://pypi.org/search/?q=calculator)
  • 另外,test库和正式库的token不一样,确认好对应的库名字即可
在这里插入图片描述
在这里插入图片描述

4.6 安装使用 本地我配置了阿里云镜像,当前还没同步到阿里云,所以需要指定pypi源即可安装。 另外,需要注意项目名称和命令行入口点名称是两个不同的概念,都是在pyproject.toml中定义:

  • 项目/包名称:calculator-suoxd (这是用于pip install的名称,[project].name中定义)
  • 命令行入口点名称:calculator (这是用于运行的程序名称,[project.scripts]中定义)
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-08-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 具身小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. pip默认源
  • 2. 配置pip镜像源
  • 3. 本地通过pip安装Python包
  • 4. 发布包到PyPI(供所有人通过pip安装)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档