【发布时间】:2014-08-16 16:37:25
【问题描述】:
我想像这样以非 root 用户身份安装 python 模块
$ pip install -I --install-option="--prefix=~/usr" scipy
不幸的是,除非您指定--user,否则这通常不起作用。但是--user不能和--prefix一起使用。仅使用--user(不使用--prefix)安装到~/.local,我觉得这很难看,因为我有一个维护良好的~/usr,并且不想在我的env 中添加更多东西以使~/.local 可用也是。
所以我的问题:
- 如何让
--prefix和--user一起为 setup.py 工作,否则 setup.py 不使用--user怎么能成功? - 或者我可以通过
env将用户站点目录从~/.local更改为~/usr吗?
【问题讨论】:
-
我不明白为什么
--install-option="--prefix=~/usr"不应该工作。请告诉我们您遇到了什么错误。 -
对我来说 --prefix 仅在尚未全局安装时才有效。它尝试卸载全局模块并因错误而中止。我可以以某种方式禁用“卸载”吗? --ignore-installed 是不够的。
-
我猜
--ignore-installed与--install-option="--prefix=..."不兼容,因为前者是pip 的选项,而后者直接传递给setuptools。您可以尝试使用 pip 的--target选项,这应该可以防止 pip 尝试卸载系统范围的软件包。 -
--target 也不起作用。我还直接使用 setup.py 进行了很多尝试,以避免 pip 的任何奇怪行为。 (请注意,在 pip
标签: python pip setup.py pythonpath