文章目录
- 发布自己的Python包
- 第一步:注册Pypi账号
- 第二步:准备本地文件
- 第三部:构建包并上传
发布自己的Python包
参考https://packaging.python.org/en/latest/tutorials/packaging-projects/
第一步:注册Pypi账号
第二步:准备本地文件
- 更新pip
- 以项目example_package为例,在本地创建以下文件结构:
其中__init__.py需要将目录作为包导入,并且应该为空。example.py是包中的一个模块示例,它可以包含包的逻辑(函数、类、常量等)。例如
def add_one(number):
return number + 1
- 添加其他的必要文件,如图所示
目录树中的文件以及相应的配置在https://packaging.python.org/en/latest/tutorials/packaging-projects/都有说明,这里不进行解释。
需要注意的是,scr目录下首先是我们的包名,然后再包名的文件夹里边才是我们的代码文件。
第三部:构建包并上传
- 按照https://packaging.python.org/en/latest/tutorials/packaging-projects/所示教程安装build和twine。
- 使用命令 python3 -m build 进行构建。但是这里有一个问题。由于我是用virtualenv创建了虚拟环境,而在虚拟环境下进行build总是失败,会弹出Error。因此尽管我在虚拟环境下开发了我的代码了,但是在build时,需要切换到base环境下,也就是python的默认环境下进行build。(需要在base环境下安装pip,build,twine,wheel)
- build完成以后会生成dist文件夹。然后使用twine进行上传。官方教程是用testpypi进行上传测试。当我们打算真正发布我们的python包时,我们需要使用代码:
python3 -m twine upload --repository pypi dist/*
#或者
python -m twine upload --repository pypi dist/*
改行代码无需任何改动。运行这行代码以后会提示输入pypi的账号和密码,然后就可以上传了。注意同一个代码不同上传两次,上传新的代码版本时,需要改动setup.cfg中的版本号。如果就是需要对代码进行同版本覆盖,在执行twine命令时,可以使用–skip_existing参数,即
python3 -m twine upload --repository pypi --skip_existing dist/*
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)