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

Posted

技术标签:

【中文标题】如何在没有 root 访问权限的情况下安装 python 模块?【英文标题】:How to install python modules without root access? 【发布时间】:2011-11-19 21:29:37 【问题描述】:

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

如何进行安装?

【问题讨论】:

您可以将--user 或--prefix 传递给您要安装的包的setup.py 以在本地安装它。见alertnative installation for Python modules 【参考方案1】:

在没有管理员权限的情况下安装 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

【讨论】:

【参考方案2】:

没有权限访问或安装easy_install

然后,您可以创建一个 python virtualenv (https://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/

【讨论】:

这个答案在没有安装pip 的系统上对我很有用。 我为我的本地 python 安装尝试了一个变体。 curl --silent --show-error --retry 5 bootstrap.pypa.io/get-pip.py | ~/Python-2.7.8/python 源似乎已经移动,上面的内容不能开箱即用。 https://virtualenv.pypa.io/en/latest/installation/ 的类似说明可以正常工作:)【参考方案3】:

在本地安装 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>

【讨论】:

这基本上是tremendows instructions的更新版本。他的指示已经过时了。我的编辑被拒绝了。因此,我将其作为新说明发布。【参考方案4】:

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

pip install --user package_name

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

【讨论】:

那我该怎么处理路径呢?【参考方案5】:

在大多数情况下,最好的解决方案是依靠所谓的“用户站点”位置(有关详细信息,请参阅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:

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

【讨论】:

如果python没有pipeasy_install可用怎么办? 安装顺利(pip 方法),但导入 package_name 不起作用。我需要更改/添加一些配置吗?安装复制到哪里(文件夹)? // ,@AnotherDayAnotherRob,这听起来是一个很好的问题 更新答案并将--user指令放在顶部可能有意义。:) @Girardi 如果您已将 python 从 src 安装到本地目录 /my_python/,首先在此位置安装 pip 会很有用: wget --no-check-certificate bootstrap.pypa.io/get-pip.py -O -​​ | /my_python/bin/python - 然后您可以使用 pip + 前缀安装其他模块【参考方案6】:

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

【讨论】:

这对我来说可以在没有 root 访问权限的情况下在 linux 服务器上安装。谢谢,但我不知道它为什么起作用。任何机构都可以给出提示吗?【参考方案7】:

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

它允许您通过根目录访问主目录中的自定义系统,因此,您可以在没有根权限的情况下安装任何软件包。它可以在所有主要的 linux 发行版上正常运行,唯一的限制是 JuJu 可以在最低推荐版本 2.6.32 的 linux 内核上运行。

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

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

【讨论】:

【参考方案8】:

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

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

    已安装的 pip

像这样:

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

像这样:

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

喜欢这个

pip3 install --user httpie

# test httpie package
http httpbin.org

【讨论】:

【参考方案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 变量。

【讨论】:

非常感谢。我已经使用python &lt;lxml_distrib_dir&gt;/setup.py install --home=&lt;dir&gt; 成功安装了lxml

以上是关于如何在没有 root 访问权限的情况下安装 python 模块?的主要内容,如果未能解决你的问题,请参考以下文章

在没有root访问权限的情况下安装zsh? [关闭]

如何在没有 root 的情况下从 Ubuntu 18.04.3 中完全删除节点?

如何在没有 root 权限的情况下安装 Perl 模块?

如何在没有 root 访问权限的情况下在服务器上杀死其他人的 Python 进程?

如何在没有 root 权限的情况下在图像文件上安装 grub?

如何在没有root访问权限的情况下部署NodeJS应用程序,以便在服务器重新启动后保持在线状态?