如何安装没有root访问权限的python模块?

Ris*_*shi 214 python numpy pip

我正在上一些大学课程并获得了一个"教学账户",这是一个我可以用来做工作的学校账户.我想在那台机器上运行我的计算密集型Numpy,matplotlib,scipy代码,但我无法安装这些模块,因为我不是系统管理员.

我该怎么做安装?

tih*_*iho 291

在大多数情况下,最佳解决方案是依靠所谓的"用户站点"位置(请参阅PEP了解详细信息):

pip install --user package_name
Run Code Online (Sandbox Code Playgroud)

以下是我原始答案中更"手动"的方式,如果上述解决方案适合您,则无需阅读.


使用easy_install,您可以:

easy_install --prefix=$HOME/local package_name
Run Code Online (Sandbox Code Playgroud)

将安装到

$HOME/local/lib/pythonX.Y/site-packages
Run Code Online (Sandbox Code Playgroud)

('local'文件夹是许多人使用的典型名称,但当然您可以指定您有权写入的任何文件夹).

您需要手动创建

$HOME/local/lib/pythonX.Y/site-packages
Run Code Online (Sandbox Code Playgroud)

并将其添加到您的PYTHONPATH环境变量(否则easy_install会抱怨 - 顺便运行上面的命令一次以找到XY的正确值).

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

使用pip你可以使用:

pip install --install-option="--prefix=$HOME/local" package_name
Run Code Online (Sandbox Code Playgroud)

  • @Girardi:然后[安装`pip`](http://stackoverflow.com/a/13958308/4279) (2认同)
  • //,@ OtherDayAnotherRob,听起来像个好_question_. (2认同)
  • 更新答案并在顶部放置`--user`指令可能是有意义的.:) (2认同)

tre*_*ows 50

无权访问或安装easy_install

然后,您可以创建一个python virtualenv(https://pypi.python.org/pypi/virtualenv)并从此虚拟环境安装该软件包.

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

$ curl --location --output virtualenv-X.X.X.tar.gz https://github.com/pypa/virtualenv/tarball/X.X.X
$ tar xvfz virtualenv-X.X.X.tar.gz
$ python pypa-virtualenv-YYYYYY/src/virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install package_name
Run Code Online (Sandbox Code Playgroud)

来源和更多信息:https://virtualenv.pypa.io/en/latest/installation/

  • 源似乎已经移动,上面的功能不是开箱即用的.`https:// virtualenv.pypa.io/en/latest/installation /`上类似的说明工作正常:) (3认同)

yus*_*ong 13

即使没有root访问权限,也可以运行easy_install在主目录中安装python包.有一种标准方法可以使用site.USER_BASE来执行此操作,默认为$ HOME/.local或$ HOME/Library/Python/2.7/bin,默认情况下包含在PYTHONPATH中

为此,请在主目录中创建.pydistutils.cfg:

cat > $HOME/.pydistutils.cfg <<EOF
[install]
user=1
EOF
Run Code Online (Sandbox Code Playgroud)

现在,您可以在没有root权限的情况下运行easy_install:

easy_install boto
Run Code Online (Sandbox Code Playgroud)

或者,这也允许您在没有root访问权限的情况下运行pip:

pip install boto
Run Code Online (Sandbox Code Playgroud)

这适合我.

来自Wesley Tanaka的博客来源:http://wtanaka.com/node/8095


roc*_*ker 9

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

在tihos post中描述了设置PYTHONPATH变量.


Col*_*nic 6

重要的问题.我使用的服务器(Ubuntu 12.04)有easy_install3但没有pip3.这是我将Pip和其他软件包安装到我的主文件夹的方式

  1. 要求管理员安装Ubuntu包 python3-setuptools

  2. 安装点子

像这样:

 easy_install3 --prefix=$HOME/.local pip
 mkdir -p $HOME/.local/lib/python3.2/site-packages
 easy_install3 --prefix=$HOME/.local pip
Run Code Online (Sandbox Code Playgroud)
  1. 添加Pip(和其他Python应用程序到路径)

像这样:

PATH="$HOME/.local/bin:$PATH"
echo PATH="$HOME/.local/bin:$PATH" > $HOME/.profile
Run Code Online (Sandbox Code Playgroud)
  1. 安装Python包

像这样

pip3 install --user httpie

# test httpie package
http httpbin.org
Run Code Online (Sandbox Code Playgroud)