【发布时间】:2014-11-21 01:44:02
【问题描述】:
setup.py(和pip 通过--install-option)的--prefix 选项似乎坏了。
我需要在我没有sudo 访问权限的机器上维护更新的python 包的共享存储库。从理论上讲,setup.py 的 --prefix 选项(以及通过 --install-option 的 pip)可以满足我的需要。
但是,如果我在系统目录中已经安装了某个版本的软件包,则无法将其安装在我的私有存储库中。不使用--upgrade 安装失败,因为系统中已经存在一个包,使用--upgrade 安装失败,因为无法删除旧包版本。这显示在下面的错误消息中。
有什么方法可以阻止 install 尝试删除旧版本的软件包?或者,更有可能的是,我只是不明白这应该如何工作?
$ pip --version
pip 1.5.6 from /python-local/lib/python2.7/site-packages (python 2.7)
$ pip install -U --install-option="--prefix=/python-local" virtualenv
Downloading/unpacking virtualenv from https://pypi.python.org/packages/py2.py3/v/virtualenv/virtualenv-1.11.6-py2.py3-none-any.whl#md5=c2aa2fc4986967815f8cb3a3418e6031
Downloading virtualenv-1.11.6-py2.py3-none-any.whl (1.6MB): 1.6MB downloaded
Installing collected packages: virtualenv
Found existing installation: virtualenv 1.7.1.2
Uninstalling virtualenv:
Cleaning up...
Exception:
Traceback (most recent call last):
File "/python-local/lib/python2.7/site-packages/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/python-local/lib/python2.7/site-packages/pip/commands/install.py", line 283, in run
requirement_set.install(install_options, global_options, root=options.root_path)
File "/python-local/lib/python2.7/site-packages/pip/req.py", line 1431, in install
requirement.uninstall(auto_confirm=True)
File "/python-local/lib/python2.7/site-packages/pip/req.py", line 598, in uninstall
paths_to_remove.remove(auto_confirm)
File "/python-local/lib/python2.7/site-packages/pip/req.py", line 1836, in remove
renames(path, new_path)
File "/python-local/lib/python2.7/site-packages/pip/util.py", line 295, in renames
shutil.move(old, new)
File "/usr/lib/python2.7/shutil.py", line 300, in move
os.unlink(src)
OSError: [Errno 13] Permission denied: '/usr/bin/virtualenv'
Storing debug log for failure in /home/user/.pip/pip.log
【问题讨论】:
标签: python installation pip