我使用的是Python 3.5.1和pip 7.1.2:
pysam>=0.9.0
在我的requirements.txt中,我写道:
pip3
然后我使用pip3 install -U -r requirements.txt
来安装这个requirements.txt文件,如下所示:
pysam
此cython
有自己的依赖关系:pip3 install -U -r requirements.txt
,可在以下位置查看:https://github.com/pysam-developers/pysam/blob/master/requirements.txt
但是,使用pysam
似乎不会递归地安装ValueError: no cython installed
的依赖项,它会抛出requirements.txt
的预期。
有没有人知道为什么{{1}}没有安装递归?
答案 0 :(得分:3)
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之外还有一个解决方案。