如何为 Python 2 和 3 上传通用 Python 车轮?
How do I upload a Universal Python Wheel for Python 2 and 3?
我在 PyPi 上有一个包,在准备新版本时,我构建源代码分发、构建轮子并上传,所有这些都使用 setuptools。
但是,我发现它只上传上传命令中使用的 Python 版本的轮子(python
和 python3
)。
以下是我正在执行的步骤:
python3 setup.py sdist
python3 setup.py bdist_wheel --universal
python3 setup.py sdist bdist_wheel upload
根据 Python Packaging User Guide:
"Universal Wheels" are wheels that are pure python (i.e. contains no compiled extensions) and support Python 2 and 3
所以这对我来说似乎是正确的。
在 wheel 构建步骤之后,我验证了 wheel 已经构建并且在 dist
中具有文件名格式 PACKAGE-VERSION-py2.py3-none-any.whl
但是当我 运行 使用 python3 setup.py sdist bdist_wheel upload
上传时,它会创建一个 PACKAGE-VERSION-py3-none-any.whl
并上传它。
如果我 运行 python setup.py sdist bdist_wheel upload
它会做同样的事情并上传一个 Python 2-only one.
命令 python3 setup.py sdist bdist_wheel upload
创建一个 new 轮分布。
您需要在该命令行中再次包含相同的标志:
python3 setup.py sdist bdist_wheel --universal upload
最好使用twine
来管理上传;它将使用加密连接(setuptools
使用未加密连接,因此以明文形式发送您的用户名和密码)并且它允许您在上传之前检查和测试分发:
python3 setup.py sdist
python3 setup.py bdist_wheel --universal
# test the distributions
twine upload dist/*
Twine 目前也是 的唯一工具。
我在 PyPi 上有一个包,在准备新版本时,我构建源代码分发、构建轮子并上传,所有这些都使用 setuptools。
但是,我发现它只上传上传命令中使用的 Python 版本的轮子(python
和 python3
)。
以下是我正在执行的步骤:
python3 setup.py sdist
python3 setup.py bdist_wheel --universal
python3 setup.py sdist bdist_wheel upload
根据 Python Packaging User Guide:
"Universal Wheels" are wheels that are pure python (i.e. contains no compiled extensions) and support Python 2 and 3
所以这对我来说似乎是正确的。
在 wheel 构建步骤之后,我验证了 wheel 已经构建并且在 dist
中具有文件名格式 PACKAGE-VERSION-py2.py3-none-any.whl
但是当我 运行 使用 python3 setup.py sdist bdist_wheel upload
上传时,它会创建一个 PACKAGE-VERSION-py3-none-any.whl
并上传它。
如果我 运行 python setup.py sdist bdist_wheel upload
它会做同样的事情并上传一个 Python 2-only one.
命令 python3 setup.py sdist bdist_wheel upload
创建一个 new 轮分布。
您需要在该命令行中再次包含相同的标志:
python3 setup.py sdist bdist_wheel --universal upload
最好使用twine
来管理上传;它将使用加密连接(setuptools
使用未加密连接,因此以明文形式发送您的用户名和密码)并且它允许您在上传之前检查和测试分发:
python3 setup.py sdist
python3 setup.py bdist_wheel --universal
# test the distributions
twine upload dist/*
Twine 目前也是