我正在尝试在没有管理员权限的服务器上安装scikit-image。Scikit-image需要CythonCython0.23作为依赖项,但服务器全局安装了>= 0.21。
$ which Cython
/opt/apps/software/MPI/GCC/4.8.3/OpenMPI/1.8.8/Python/2.7.9/bin/cython
$ cython --version
Cython version 0.21.2我可以在本地将Cython0.25.2安装到我的项目的.pip文件夹中(遵循建议here):
$ pip install Cython -t .pip
$ python ./.pip/cython.py --version
Cython version 0.25.2我已经将./.pip添加到我的PYTHONPATH的开头,但是当我尝试安装scikit image时,我得到
$ pip install --user scikit-image
...
RuntimeError: Cython >= 0.23 needed to build scikit-image如何告诉pip安装程序使用my_project/.pip中的Cython版本?
发布于 2017-02-18 09:33:19
结果是集群模块管理系统将旧版本的Cython添加到Python的sys.path中,优先级比我能添加到PYTHONPATH中的任何东西都要高。当我卸载我一直在使用的Python模块时,集群上的默认版本是2.7.5,它没有pip,所以我不能在卸载模块时以用户身份安装scikit-image (此外,如果没有模块,许多依赖项就会丢失)。
解决方案是使用virtualenv,创建一个环境,并在该环境中安装我的软件包。为了运行我的代码,我现在使用/path/to/virtualenv/python my_file。
从好的方面来说,我现在对集群模块系统和Python路径有了更多的了解。祈祷这个答案最终对其他人有用。关于Python在哪里寻找依赖关系的一个有趣的讨论是here。
https://stackoverflow.com/questions/42305977
复制相似问题