繁体   English   中英

在Python中,`pip -r requirements.txt`不会递归地安装包*?

[英]In Python, `pip -r requirements.txt` doesn't install packages *recursively*?

我正在使用Python 3.5.1和pip 7.1.2:

pip3 --version
pip 7.1.2 from /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages (python 3.5)

在我的requirements.txt中,我写道:

pysam>=0.9.0

然后我使用pip3来安装这个requirements.txt文件,如下所示:

pip3 install -U -r requirements.txt

这个pysam有自己的依赖: cython ,可以在以下网址看到: https//github.com/pysam-developers/pysam/blob/master/requirements.txt

但是,使用pip3 install -U -r requirements.txt似乎不会递归地安装pysam的依赖,它会抛出一个ValueError: no cython installed

有没有人有关于为什么不以递归方式安装requirements.txt想法?

该pysam setup.py脚本似乎使用requires ,而不是典型的install_requires ; 后者生成pip需要的元数据以确定其要求。 事实上,pysam似乎需要cython来构建自己,所以更合适的是,它应该使用setup_requires 如果没有安装cython,可以检查安装pysam是否正常运行。

(编辑:不工作)无论如何,你可以通过在你的需求文件中放置pysam之前的cython来解决这个问题; 这样,pip将尝试在pysam移动之前安装cython:

cython>=0.22
pysam>=0.9.0

编辑 :要清楚,这与pip -r requirements.txt本身无关。 这是因为pip没有从pysam接收到足够的元数据,因此在尝试安装pysam之前需要先安装cython。

第二次编辑:你是对的。 安装仍然失败,因为pip在进入构建阶段之前尝试从pysam安装脚本获取元数据,并且如果未安装cython,则pysam安装脚本会抛出该错误。 在这种特殊情况下,我不确定除了预先在单独的命令中安装Cython之外还有一个解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM