1、打包及上传
1.1、安装构建和打包工具
pip3 install build # 构建包的工具
pip3 install twine # 上传包的工具
pip3 install wheel #heel格式
1.2 创建 setup.py
from setuptools import setup, find_packages setup( name='zykj-py-apollo', version='1.23.12', author="zykj", description="apollo 客户端", # packages=find_packages(), packages=['pyApolloClient'], # 项目目录 install_requires=[ 'PyYAML~=6.0.1', 'loguru~=0.7.2', 'setuptools~=69.0.2' ], entry_points={ 'console_scripts': [ 'pyApolloClient = pyApolloClient.main:main' ] } )
1.3、打包:
python setup.py sdist bdist_wheel
1.4、上传:
python -m twine upload dist/*
2、上传问题及解决方法
2.1 问题:
ERROR HTTPError: 403 Forbidden from https://upload.pypi.org/legacy/
Invalid or non-existent authentication information
原因:
本地没有 .pypirc
解决方法:
创建文件命令 .pypirc
[distutils]index-servers=pypi [pypi]repository = https://upload.pypi.org/legacy/ username = XXX password = XXX
windows: C:\Users\用户名
mac:用户下面
2.2 问题2:
HTTPError: 401 Unauthorized from https://upload.pypi.org/legacy/
User xxxhas two factor auth enabled, an API Token or Trusted Publisher must be used to upload in place of
原因:
yPi 调整了安全策略,不再允许启用两步验证的账号使用用户名密码来上传项目了,必须使用 API 令牌来进行身份验证。
解决方法:
1)登录 PyPi ,进入账户设置页,点击「添加 API 令牌」按钮创建 API 令牌。然后修改 ~/.pypirc 配置文件, 用户名字段改为 token ,密码字段改为刚才创建的令牌:
2)点击添加 Add API token
3)点击生成秘钥:
4)将生成的秘钥放在配置文件的中
[distutils]index-servers=pypi [pypi]repository = https://upload.pypi.org/legacy/ username = __token__ password = 秘钥
再次上传,上传成功