2011-09-19 99 views
162

我参加了一些大学课程并获得了一个“教学账户”,这是一个我可以参加工作的学校账户。我想在该机器上运行我的计算密集型Numpy,matplotlib,scipy代码,但由于我不是系统管理员,因此无法安装这些模块。如何安装无root权限的python模块?

我该如何安装?

+12

您可以通过--user或--PREFIX到的setup.py为您正在安装的软件包在本地安装。请参阅[Python模块的alertnative安装](http://docs.python.org/install/index.html#alternate-installation) – arunkumar

回答

225

在大多数情况下,最好的解决办法是依靠所谓的“用户现场”位置运行(见PEP了解详细信息):

pip install --user package_name 

下面是一个更“手动”方式我原始答案,如果上述解决方案适用于您,则无需阅读。


有了easy_install的,你可以这样做:

easy_install --prefix=$HOME/local package_name 

这将安装到

$HOME/local/lib/pythonX.Y/site-packages 

( '本地' 文件夹是一个典型的名字很多人使用,当然你可能指定您有权写入的任何文件夹)。

您需要手动创建

$HOME/local/lib/pythonX.Y/site-packages 

,并把它添加到您的PYTHONPATH环境变量(否则的easy_install会抱怨 - 顺便说一句运行上述命令,一旦找到X.Y正确的值)。

如果您没有使用easy_install,请查找前缀选项,大多数安装脚本允许您指定一个。

透过子母画面,您可以使用:

pip install --install-option="--prefix=$HOME/local" package_name 
+0

如果python没有可用的'pip'和'easy_install',该怎么办? – Girardi

+1

@Girardi:然后[安装'pip'](http://stackoverflow.com/a/13958308/4279) – jfs

+0

是的,这就是我要求管理员=) – Girardi

8

如果你有使用的distutils setup.py脚本,也有强制安装目的地的一些命令行选项。请参阅http://docs.python.org/install/index.html#alternate-installation。如果重复出现此问题,则可以设置distutils配置文件,请参阅http://docs.python.org/install/index.html#inst-config-files

设置PYTHONPATH变量在tihos文章中描述。

+1

安装其他模块非常感谢。我已经使用'python /setup.py install成功安装了'lxml'库--home =

' –

36

您还可以创建一个python virtualenvhttps://pypi.python.org/pypi/virtualenv),特别是没有权限来访问,也没有安装easy_install命令时。

在shell执行3个命令就足够了:

$ curl -O https://raw.github.com/pypa/virtualenv/master/virtualenv.py 
$ python virtualenv.py my_new_env 
$ . my_new_env/bin/activate 
(my_new_env)$ pip install package_name 

源的详细信息:https://virtualenv.pypa.io/en/latest/installation/

+0

这个答案在没有安装'pip'的系统上对我很有用。 –

+0

我尝试了一个用于我的本地python安装的变体。 curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | 〜/ Python-2.7.8/python – Neerav

+2

这个源似乎已经移动了,上面的代码不能正常工作。 'https:// virtualenv.pypa.io/en/latest/installation /'中的类似指令虽然工作正常:) –

5

重要的问题。我使用的服务器(Ubuntu 12.04)有easy_install3,但不是pip3。这是我如何安装皮普,然后其他包到我的主文件夹

  1. 问管理员安装Ubuntu的软件包python3-setuptools

  2. 安装PIP

像这样:

easy_install3 --prefix=$HOME/.local pip 
mkdir -p $HOME/.local/lib/python3.2/site-packages 
easy_install3 --prefix=$HOME/.local pip 
  1. 加入皮普(和其他Python应用程序到路)

像这样:

PATH="$HOME/.local/bin:$PATH" 
echo PATH="$HOME/.local/bin:$PATH" > $HOME/.profile 
  1. 安装Python包

这样

pip3 install --user httpie 

# test httpie package 
http httpbin.org 
2

我用JuJu这基本上允许有一个真正的t在您的$ HOME/.juju目录中包含iny linux发行版(仅包含软件包管理器)。

它允许您的自定义系统位于主目录内,通过proot访问,因此,您可以安装任何没有root权限的软件包。它可以正常运行到所有主要的Linux发行版,唯一的限制是JuJu可以在Linux内核上运行,并且最小的版本为2.6.32。

例如,后安装苣安装PIP只需键入以下内容:

$>juju -f 
(juju)$> pacman -S python-pip 
(juju)> pip 
9

您可以运行的easy_install到你的主目录,即使没有root访问权限安装Python包。有一个标准的方法来使用site.USER_BASE,默认为$ HOME/.local或$ HOME/Library/Python/2.7/bin,默认包含在PYTHONPATH中。 .pydistutils.cfg在你的主目录:

cat > $HOME/.pydistutils.cfg <<EOF 
[install] 
user=1 
EOF 

现在你可以没有root权限运行的easy_install:

easy_install boto 

或者,这也可以让你没有root访问PIP运行:

pip install boto 

这对我有用。

从韦斯利田中的博客来源:http://wtanaka.com/node/8095

+1

这对我来说在Linux服务器上没有root权限的情况下安装。谢谢但我不知道为什么它的工作。任何机构都可以给出提示吗? – ChathuraG