在没有sudo权限的情况下,如何在/usr中升级一个库:使用pip install

3

python-six已经安装在/usr目录下,我需要对其进行升级,但是我没有root权限。

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

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

我知道如何使用根权限升级一个库:

pip install --upgrade six

但是当我尝试进行以下库的升级时:

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

I get:

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。 - Padraic Cunningham
@PadraicCunningham 当我尝试使用pip install --install-option="--prefix=$HOME/.local" package将任何库安装到主目录时,我得到了库已经安装的消息。你是不是指的是其他什么东西? - Alexandre Holden Daly
我的意思是你可以从源代码安装Python到任何你指定的目录,然后将路径添加到bashrc中,然后你就可以安装任何包了。 - Padraic Cunningham
@PadraicCunningham 如果您能提供一份详细说明的代码作为答案,那就太好了! - Alexandre Holden Daly
我现在正在使用手机,但这是一个链接,可以解释选项 https://docs.python.org/2/install/。如果您遇到困难,我稍后会添加逐步说明。 - Padraic Cunningham
1个回答

0

针对这点,我建议在虚拟环境中工作:

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

这样你就可以完全控制你的模块,而不必向系统管理员请求sudo权限。

希望对你有所帮助,谢谢 //P

免责声明 - 需要更多的pip工作 ;-)


谢谢建议,我现在正在尝试。由于我的本地存储空间有限,所以有没有办法确保当我使用pip install安装库时,只有在该库未安装在/usr内时才进行安装?还有,在我使用pip install --upgrade升级库时,如何确保只有在/usr内没有最新版本的该库安装时才进行升级? - Alexandre Holden Daly
1
是的,这是可能的。您可以在创建虚拟环境时使用--system-site-packages标志,例如:virtualenv --system-site-packages foo,然后激活虚拟环境:source foo/bin/activate;或者您可以使用--no-site-packages参数,并将所需的库链接到相应位置 :-) - YFP

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接