Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在setup.py中为不同版本的python指定lz4包的不同版本_Python_Setuptools_Setup.py - Fatal编程技术网

在setup.py中为不同版本的python指定lz4包的不同版本

在setup.py中为不同版本的python指定lz4包的不同版本,python,setuptools,setup.py,Python,Setuptools,Setup.py,我正在管理一个开源库,它必须在Python27-3和36-1中都可用。lz4最近发布了3.0.2版,只有python>=3.5支持它。目前,我没有在我的setup.py中列出lz4的依赖项,因此它必须是我的一个依赖项的子依赖项 这样做的唯一方法是强制用户(尝试获得27-3版本,应该不多)尝试安装my egg,一旦它无法编译lz4,他们可以手动运行pip install lz4==3.0.0,然后再次尝试安装my Package 我知道requirements.txt中有类似的内容: lz4<

我正在管理一个开源库,它必须在Python27-3和36-1中都可用。lz4最近发布了3.0.2版,只有python>=3.5支持它。目前,我没有在我的
setup.py
中列出lz4的依赖项,因此它必须是我的一个依赖项的子依赖项

这样做的唯一方法是强制用户(尝试获得27-3版本,应该不多)尝试安装my egg,一旦它无法编译lz4,他们可以手动运行
pip install lz4==3.0.0
,然后再次尝试安装my Package

我知道requirements.txt中有类似的内容:

lz4<=3.0.0; python_version < '3.0'
lz4; python_version > '3.0'
lz4'3.0'

但是我尝试将所有安装说明本地化到我的
setup.py
文件中。

依赖项可以在
setup.py
中声明,而不仅仅是在
requirements.txt
中声明。在
setup.py
中使用:

设置(
…
安装\u需要=[
“lz4'3.0'”,
]
…
)

一些真实世界的例子:,。

这解决了我的问题,尽管看起来我需要将其限制在IMO依赖项上,比如
lz4>2.0,
setup(
    …
    install_requires = [
        "lz4<=3.0.0; python_version < '3.0'",
        "lz4; python_version > '3.0'",
    ]
    …
)