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

时间:2011-09-19 00:41:50

标签: python numpy pip

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

我该如何安装?

9 个答案:

答案 0 :(得分:280)

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

pip install --user package_name

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


使用easy_install,您可以:

easy_install --prefix=$HOME/local package_name

将安装到

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

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

您需要手动创建

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

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

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

使用pip,你可以使用:

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

答案 1 :(得分:48)

无权访问或安装easy_install

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

在shell中执行4个命令就足够了(为X.X.X插入当前版本,如16.1.0):

$ 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

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

答案 2 :(得分:12)

即使没有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

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

easy_install boto

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

pip install boto

这适合我。

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

答案 3 :(得分: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变量。

答案 4 :(得分:6)

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

的方法
  1. 要求管理员安装Ubuntu软件包python3-setuptools

  2. 已安装的点子

  3. 像这样:

     easy_install3 --prefix=$HOME/.local pip
     mkdir -p $HOME/.local/lib/python3.2/site-packages
     easy_install3 --prefix=$HOME/.local pip
    
    1. 将Pip(以及其他Python应用程序添加到路径)
    2. 像这样:

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

        pip3 install --user httpie
        
        # test httpie package
        http httpbin.org
        

答案 5 :(得分:4)

我使用JuJu基本上允许在$ HOME / .juju目录中拥有一个非常小的Linux发行版(仅包含包管理器)。

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

例如,在安装了JuJu安装pip后,只需输入以下内容:

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

答案 6 :(得分:2)

最好和最简单的方法是这个命令:

pip install --user package_name

http://www.lleess.com/2013/05/how-to-install-python-modules-without.html#.WQrgubyGOnc

答案 7 :(得分:1)

本地安装virtualenv(source of instructions):

重要:为 X.X.X 插入当前版本(如 16.1.0 )。
检查提取的文件的名称,并将其插入 YYYYY

$ curl -L -o virtualenv.tar.gz https://github.com/pypa/virtualenv/tarball/X.X.X
$ tar xfz virtualenv.tar.gz
$ python pypa-virtualenv-YYYYY/src/virtualenv.py env

使用安装任何软件包之前,您需要source虚拟Python环境env

$ source env/bin/activate

要安装新的python包(例如numpy),请使用:

(env)$ pip install <package>

答案 8 :(得分:0)

安装没有管理员权限的Python软件包

import sys

!{sys.executable} -m pip install package_name

示例

import sys

!{sys.executable} -m pip install kivy

参考:https://docs.python.org/3.4/library/sys.html#sys.executable