【问题标题】:pip install: upgrade a library in /usr without sudopip install:在不使用 sudo 的情况下升级 /usr 中的库
【发布时间】:2014-07-09 12:12:56
【问题描述】:

python-six安装在/usr中,我需要升级它,但我没有root权限。

我知道如何在没有 root 权限的情况下安装库:

pip install --install-option="--prefix=$HOME/.local" six

我知道如何使用 root 权限升级库:

pip install --upgrade six

但是当我尝试这样升级库时:

pip install --upgrade --install-option="--prefix=$HOME/.local" six

我明白了:

Downloading/unpacking six from https://pypi.python.org/packages/source/s/six/six-1.7.3.tar.gz#md5=784c6e5541c3c4952de9c0a966a0a80b
  Running setup.py egg_info for package six

    no previously-included directories found matching 'documentation/_build'
Installing collected packages: six
  Found existing installation: six 1.2.0
    Uninstalling six:
Exception:
OSError: [Errno 13] Permission denied: '/usr/share/pyshared/six-1.2.0.egg-info'

那么,我如何在没有 sudo 的情况下升级 six

【问题讨论】:

  • 你可以在你的主目录安装python。
  • @PadraicCunningham 当我尝试使用pip install --install-option="--prefix=$HOME/.local" package 将任何库安装到主目录时,我知道该库已经安装。你还有别的意思吗?
  • 我的意思是你可以从源代码安装 Python 到你指定的任何目录,然后添加 bashrc 的路径,然后你就可以安装任何包
  • @PadraicCunningham 如果您能以代码的形式详细说明这些说明,那就太好了!
  • 我现在正在使用手机,但这是一个解释选项docs.python.org/2/install 的链接。如果你卡住了,我稍后会一步一步添加

标签: python unix pip sudo


【解决方案1】:

为此 - 我建议在虚拟环境中工作:

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

然后您将完全控制您的模块,而无需为 sudo 打扰系统管理员

HTH 的感谢 //P

免责声明 - 涉及更多 pip 工作 ;-)

【讨论】:

  • 感谢您的建议,我正在尝试。我的本地存储空间有限,所以有没有办法确保,当我 pip install 一个库时,只有在 /usr 中尚未安装该库时才会这样做?并确保当我pip install --upgrade 一个库时,只有在usr 内没有安装最新版本的库时才会这样做?
  • 是的,您可以在创建虚拟环境时使用 --system-site-packages 标志,因此 virtualenv --system-site-packages foo 然后 source foo/bin/activate - 或者您可以使用 --no-site-packages 参数和 ln -s 你想要的库:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-01
  • 2021-06-01
  • 2021-07-15
  • 2018-10-12
  • 2018-08-09
相关资源
最近更新 更多