【问题标题】:upgrade pip without root access升级 pip 没有 root 访问权限
【发布时间】:2016-03-04 21:34:11
【问题描述】:

我正在尝试在没有 root 访问权限的超级计算机中使用 pip 8。从以下位置下载 pip 后:

https://pip.pypa.io/en/stable/installing/

我愿意:

myname@edison04:~/software/pip> python get-pip.py --prefix=~/local_python_lib/
Collecting pip
  Using cached pip-8.0.3-py2.py3-none-any.whl
Collecting wheel
  Using cached wheel-0.29.0-py2.py3-none-any.whl
Installing collected packages: pip, wheel
  Found existing installation: pip 1.5.4
    Uninstalling pip-1.5.4:
Exception:
Traceback (most recent call last):
  File "/tmp/tmplu5E1W/pip.zip/pip/basecommand.py", line 209, in main
    status = self.run(options, args)
  File "/tmp/tmplu5E1W/pip.zip/pip/commands/install.py", line 317, in run
    prefix=options.prefix_path,
  File "/tmp/tmplu5E1W/pip.zip/pip/req/req_set.py", line 725, in install
    requirement.uninstall(auto_confirm=True)
  File "/tmp/tmplu5E1W/pip.zip/pip/req/req_install.py", line 752, in uninstall
    paths_to_remove.remove(auto_confirm)
  File "/tmp/tmplu5E1W/pip.zip/pip/req/req_uninstall.py", line 115, in remove
    renames(path, new_path)
  File "/tmp/tmplu5E1W/pip.zip/pip/utils/__init__.py", line 266, in renames
    shutil.move(old, new)
  File "/usr/common/usg/python/2.7.9/lib/python2.7/shutil.py", line 300, in move
    rmtree(src)
  File "/usr/common/usg/python/2.7.9/lib/python2.7/shutil.py", line 247, in rmtree
    rmtree(fullname, ignore_errors, onerror)
  File "/usr/common/usg/python/2.7.9/lib/python2.7/shutil.py", line 252, in rmtree
    onerror(os.remove, fullname, sys.exc_info())
  File "/usr/common/usg/python/2.7.9/lib/python2.7/shutil.py", line 250, in rmtree
    os.remove(fullname)
OSError: [Errno 13] Permission denied: '/global/common/edison/usg/python/2.7.5/lib/python2.7/site-packages/pip-1.5.4-py2.7.egg/pip/__init__.py'
You are using pip version 1.5.4, however version 8.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

它试图删除我不想删除的已经存在的 pip(而且我没有权限)....请问我该怎么办?谢谢。

更多更新:添加 --user 没有帮助:

myname@edison04:~/software/pip> python get-pip.py --prefix=~/local_python_lib/ --user
ERROR: Can not combine '--user' and '--prefix' as they imply different installation locations
You are using pip version 1.5.4, however version 8.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

myname@edison04:~/software/pip> python get-pip.py  --user
Collecting pip
  Using cached pip-8.0.3-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-1.5.4
You are using pip version 1.5.4, however version 8.0.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

这会在某个位置安装 pip-1.5.4,但是我想改用 pip 8.0.3...此外,当我找到已安装的 pip 并尝试检查它们的版本时...我认为它只是将我的本地 bin 链接到 pip 1.5.4 全局 bin

key01027@edison04:~> find . -name "pip"
./software/pip
./local_python_lib/pip
./.local/bin/pip
./.local/edison/2.7.9/lib/python2.7/site-packages/pip
./.local/edison/2.7.9/bin/pip
./.cache/pip
key01027@edison04:~> cd .local/
key01027@edison04:~/.local> cd bin/
key01027@edison04:~/.local/bin> ls
pip  pip2  pip2.7
key01027@edison04:~/.local/bin> ./pip --version
pip 1.5.4 from /global/common/edison/usg/python/2.7.5/lib/python2.7/site-packages/pip-1.5.4-py2.7.egg (python 2.7)
key01027@edison04:~/.local/bin> ./pip2 --version
pip 1.5.4 from /global/common/edison/usg/python/2.7.5/lib/python2.7/site-packages/pip-1.5.4-py2.7.egg (python 2.7)
key01027@edison04:~/.local/bin> ./pip2.7 --version
pip 1.5.4 from /global/common/edison/usg/python/2.7.5/lib/python2.7/site-packages/pip-1.5.4-py2.7.egg (python 2.7)

我能做什么?谢谢

此外,使用虚拟环境也不能解决这个问题:

设置了virtualenv后,也无济于事……

(dev)key01027@edison08:~/software> which pip 
/global/homes/k/key01027/dev/bin/pip 
(dev)key01027@edison08:~/software> pip install --upgrade pip 
Cannot fetch index base URL https://pypi.python.org/simple/ 
Could not find any downloads that satisfy the requirement pip in /global/common/edison/usg/python/2.7.5/lib/python2.7/site-packages/pip-1.5.4-py2.7.egg 
Downloading/unpacking pip 
Cleaning up... 
No distributions at all found for pip in /global/common/edison/usg/python/2.7.5/lib/python2.7/site-packages/pip-1.5.4-py2.7.egg 
Storing debug log for failure in /global/homes/k/key01027/.pip/pip.log 

【问题讨论】:

  • 你应该使用 virtualenv
  • 您使用的是什么操作系统?你能把它也包含在你的标签中吗?
  • 添加--user 标志。
  • @MattDMo,似乎无法帮助我安装 pip 8.0.3 ....
  • 您似乎正在运行两个不同的 Python 版本。我看到 2.7.5(根)和 2.7.9(在 .local/edison/2.7.9 中。您可能需要先对其进行排序。

标签: python pip


【解决方案1】:

Python 虚拟环境通过允许您将项目的依赖项与同一系统上的其他人分开来解决这个问题。

大多数锁定的系统仍然提供 virtualenv,如果没有 - 请联系您的系统管理员。

http://docs.python-guide.org/en/latest/dev/virtualenvs/

https://pypi.python.org/pypi/virtualenv

【讨论】:

    猜你喜欢
    • 2016-01-01
    • 2017-04-12
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多