如何在没有 root 权限的情况下安装 python 模块?
- 2025-02-07 08:44:00
- admin 原创
- 65
问题描述:
我正在上一些大学课程,并获得了一个“教学帐户”,这是一个学校帐户,我可以通过 ssh 登录来工作。我想在那台机器上运行计算密集型的 Numpy、matplotlib、scipy 代码,但我无法安装这些模块,因为我不是系统管理员。
我如何进行安装?
解决方案 1:
在大多数情况下,最好的解决方案是依赖所谓的“用户站点”位置(有关详细信息,请参阅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 会抱怨——顺便运行上面的命令一次来找到 XY 的正确值)。
如果您不使用easy_install
,请寻找前缀选项,大多数安装脚本都允许您指定一个。
使用 pip 你可以使用:
pip install --install-option="--prefix=$HOME/local" package_name
解决方案 2:
没有访问或安装的权限easy_install
?
然后,您可以创建一个 python virtualenv
(https://pypi.python.org/pypi/virtualenv)并从这个虚拟环境安装该包。
在 shell 中执行 4 条命令就足够了(为 XXX 插入当前版本,如 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/
解决方案 3:
即使没有 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
解决方案 4:
如果您必须使用 distutilssetup.py
脚本,则有一些命令行选项可用于强制安装目标。请参阅http://docs.python.org/install/index.html#alternate-installation。如果此问题重复出现,您可以设置 distutils 配置文件,请参阅http://docs.python.org/install/index.html#inst-config-files。
这篇文章中描述了如何设置 PYTHONPATH 变量。
解决方案 5:
重要问题。我使用的服务器(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
解决方案 6:
最好和最简单的方法是这个命令:
pip install --user package_name
http://www.lleess.com/2013/05/how-to-install-python-modules-without.html#.WQrgubyGOnc
解决方案 7:
我使用JuJu,它基本上允许在你的 $HOME/.juju 目录中拥有一个非常小的 Linux 发行版(仅包含包管理器)。
它允许通过 proot 访问主目录中的自定义系统,因此,您无需 root 权限即可安装任何软件包。它可以在所有主流 Linux 发行版上正常运行,唯一的限制是 JuJu 可以在最低推荐版本 2.6.32 的 Linux 内核上运行。
例如,安装 JuJu 后,要安装 pip,只需输入以下内容:
$>juju -f
(juju)$> pacman -S python-pip
(juju)> pip
解决方案 8:
在本地安装 virtualenv (说明来源):
重要提示:在XXX中插入当前版本(如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>
解决方案 9:
无需管理员权限安装 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
解决方案 10:
尝试:
py -m pip install --upgrade package_name
查看重复的由于 EnvironmentError 而无法安装包:[WinError 5] 访问被拒绝:[重复] - Stack Overflow。