我想为整个团队设置一个Python环境,但我没有对服务器的root访问权限。
我和Perl做过类似的事情,并期望能够以类似的方式为Python做这件事,但我一直遇到问题。
基本上,我希望能够在系统上的/ SOME / DIR中安装软件包,而忽略该软件包的任何系统范围版本。 但是,当我跑
时pip install --install-option="--prefix=/SOME/DIR/" --up --ignore-installed SOME-MODULE
我一直得到#34;许可被拒绝"错误,因为pip在升级时一直试图删除系统范围的包。 这是什么工作
pip install --user --up --ignore-installed SOME-MODULE
哪些不尝试触摸系统范围的软件包,但它会将模块安装到$ HOME / .lib中的目录中,这不是我需要的。
似乎无法合并--user和" - 前缀"选项,所以我可以 安装到任意路径,但然后与已经安装的系统范围的包发生冲突或安装到我的主目录中。它们都不是我需要的。 现在我一直在使用--user选项,然后将已安装的文件移动到/ SOME / DIR,但这看起来很奇怪。
我错过了什么吗?我已经阅读了virtualenv,但这听起来并不像我需要的那样。谢谢你的帮助!
答案 0 :(得分:2)
请注意--install-options
直接传递给packages setup.py install
命令 - 这需要安装目录位于python路径中。
将其添加到您的PYTHONPATH
即
set -gx PYTHONPATH $PYTHONPATH '/home/user/temp/lib/python3.4/site-packages'
并运行pip
pip install django==1.6 --ignore-installed --install-options="--prefix=/home/user/temp"
如果您必须为每个库执行此操作,那么这主要是一个痛苦(请注意,如果您要使用默认site-packages目录中的某些标准库,您仍然可能与imports
发生冲突,以及来自您的自定义目录的其他人)。正如评论所说,最佳选择可能是安装virtualenv
和virtualenvwrapper
答案 1 :(得分:0)
我有类似的问题(权限被拒绝+没有root权限), - build选项使它工作:pip install --install-option =“ - prefix = / path / to / local / lib”--build = / tmp wget