我正在尝试使用pip在本地安装软件包~/.local.问题是程序包(旧版本)已在系统上全局可用.即使全局python包目录不在我的中PYTHONPATH,pip仍然拒绝安装,认为满足包需求.这类似于这里所描述的问题,但我不使用sudo这样的解决方案并不适用:画中画-要求已经满足了吗?
如果我做:
pip install --user numpy
Run Code Online (Sandbox Code Playgroud)
它说:
Requirement already satisfied (use --upgrade to upgrade): numpy in /usr/local/lib/python2.7/dist-packages/numpy-1.6.2-py2.7-linux-x86_64.egg
Run Code Online (Sandbox Code Playgroud)
但是,/usr/local/lib/...不是我的PYTHONPATH.唯一的问题PYTHONPATH是~/.local.
如果我尝试做:
pip install --user --upgrade numpy
Run Code Online (Sandbox Code Playgroud)
它下载numpy并编译它,然后认为我正在进行全局安装,尽管--user标志,我得到:
Installing collected packages: numpy
Found existing installation: numpy 1.6.2
Uninstalling numpy:
Exception:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/pip-1.2.1-py2.7.egg/pip/basecommand.py", line 107, in main
status = self.run(options, args)
File "/usr/local/lib/python2.7/dist-packages/pip-1.2.1-py2.7.egg/pip/commands/install.py", line 261, in run
requirement_set.install(install_options, global_options)
File …Run Code Online (Sandbox Code Playgroud) 我想像这样非root用户安装python模块
$ pip install -I --install-option="--prefix=~/usr" scipy
Run Code Online (Sandbox Code Playgroud)
不幸的是,除非您指定,否则通常不起作用--user.但--user不能与之一起使用--prefix.--user仅使用(不--prefix)安装~/.local我觉得难看,因为我维护得很好,~/usr并且不想添加更多的东西给我env也~/.local可用.
所以我的问题:
--prefix和--user为setup.py一起工作还是怎么回事,可能setup.py的成功,而不使用--user?~/.local通过~/usr某种方式更改用户站点目录env?