gpt4 book ai didi

python - 将不同版本(python 2.7 vs 3.5)上传到 PyPI

转载 作者:太空狗 更新时间:2023-10-29 20:55:41 25 4
gpt4 key购买 nike

我有一个要上传到 PyPI 的包,其中包含两个不同版本的代码:一个用于 Python 2.7,一个用于 Python 3.5。

上传到 PyPI 的标准是什么?我是否使用两个单独的 setup.py 文件?

当用户运行 pip install mypackage 时,它会自动下载正确的版本吗?

最佳答案

TL;DR:在 setup.py 上添加 python_requires。使用 twine将包上传到 PyPI。

与 IPython 一样,它的 6.0.0+ 仅支持 Python 3.3+,而 5.x 仍然支持 Python 2.x。如果您使用 pip >= 9.0.1 安装它,pip install ipython 将为 Python 2 选择最新的 5.x,为 Python 3 选择最新的 6.x。

修改setup.py

首先,您需要设置 Requires-Python ( PEP 440 ) setup.py 中的元数据,方法是将 python_requires 参数放在 setup() 函数上。

例如下面是Python 2.7版本的setup.py:

setup(
name='some-package',
version='2.3.3',
...,
python_requires='==2.7.*'
)

对于 Python 3.5+,只需将其更改为 python_requires='>=3.5'

当然,两个包必须有不同的版本号。否则 PyPI 将拒绝一个。

您可以使用两个单独的 setup.py 文件来执行此操作,或者只使用一个文件并动态设置 python_requires 参数。

上传到 PyPI

python setup.py sdist upload 似乎没有将包元数据(包含 Requires-Python)上传到 PyPI。

我发现最简单的正确方法是使用 twine .

  1. Create some distributions in the normal way:

    $ python setup.py sdist bdist_wheel
  2. Register your project (if necessary)

  3. Upload with twine

    $ twine upload dist/*

对 Python 2 和 3 版本重复步骤 1 和 3。

关于python - 将不同版本(python 2.7 vs 3.5)上传到 PyPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40114100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com