在 setup.py 中为不同版本的 python 指定不同版本的 lz4 包
Specifying different versions of lz4 package in setup.py for different versions of python
我正在管理一个必须在 python 27-3 和 36-1 中可用的开源库。 lz4 最近发布了 3.0.2 版本,仅 python >= 3.5 支持。目前,我没有在我的 setup.py
中列出对 lz4 的依赖,所以它一定是我的依赖之一的子依赖。
唯一的方法是强制用户(试图获得 27-3 版本,应该不多)尝试安装我的 egg,一旦它无法编译 lz4,他们可以 运行 pip install lz4==3.0.0
手动然后尝试再次安装我的 pacakage?
我知道 requirements.txt:
中有这样的东西
lz4<=3.0.0; python_version < '3.0'
lz4; python_version > '3.0'
但我尽量将所有设置说明本地化到我的 setup.py
文件中。
依赖项可以在 setup.py
中声明,而不仅仅是在 requirements.txt
中声明。在 setup.py
中使用 install_requires
:
setup(
…
install_requires = [
"lz4<=3.0.0; python_version < '3.0'",
"lz4; python_version > '3.0'",
]
…
)
一些现实世界的例子:SQLObject, sqlconvert。
我正在管理一个必须在 python 27-3 和 36-1 中可用的开源库。 lz4 最近发布了 3.0.2 版本,仅 python >= 3.5 支持。目前,我没有在我的 setup.py
中列出对 lz4 的依赖,所以它一定是我的依赖之一的子依赖。
唯一的方法是强制用户(试图获得 27-3 版本,应该不多)尝试安装我的 egg,一旦它无法编译 lz4,他们可以 运行 pip install lz4==3.0.0
手动然后尝试再次安装我的 pacakage?
我知道 requirements.txt:
中有这样的东西lz4<=3.0.0; python_version < '3.0'
lz4; python_version > '3.0'
但我尽量将所有设置说明本地化到我的 setup.py
文件中。
依赖项可以在 setup.py
中声明,而不仅仅是在 requirements.txt
中声明。在 setup.py
中使用 install_requires
:
setup(
…
install_requires = [
"lz4<=3.0.0; python_version < '3.0'",
"lz4; python_version > '3.0'",
]
…
)
一些现实世界的例子:SQLObject, sqlconvert。