python3 打包上传pypi失败及解决方法

发布时间 2023-12-03 11:24:32作者: 漠_然

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 = 秘钥

再次上传,上传成功