如何在没有ROOT权限的情况下安装YAML模块('easy_install'和'pip'不可用)?
我正在尝试在一台服务器上运行一个调用yaml模块的Python脚本。可我只能在我的主目录里写东西。服务器上安装的是Python 2.7.3,我没有管理员权限。而且,pip和easy_install这两个工具也用不了。
我已经下载了这个包,并尝试运行
python setup.py install --user
但出现了错误
error: can't combine user with with prefix/exec_prefix/home or install_(plat)base
我该怎么才能让它正常工作呢?
2 个回答
0
根据Anton的回答,我按照以下步骤操作,结果成功了。
pip install --user ruamel.yaml
然后在你的脚本中替换成:
import yaml
用:
from ruamel.yaml import YAML
yaml=YAML(typ='safe')
0
设置和使用虚拟环境(virtualenv)几乎总是个不错的选择。正如你提到的,你可以下载 virtualenv.py,但现在如果没有安装 pip
,这个脚本是无法运行的,因为它会尝试安装一些软件包。比如在使用 Python 2.7.6 的 Linux Mint 系统上,这个脚本可能会报错:
OSError: Command /home/ruamel/venv/bin/python -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools wheel failed with error code 1
你可以尝试使用一个旧版本的 virtualenv.py
来解决这个问题。
在某些情况下,使用虚拟环境并不现实。例如,当系统自带的 Python 已经预装了你需要的各种库,而这些库无法在本地虚拟环境中复制时。在这种情况下,你可以下载最新版本的 ruamel.yaml(我就是这个库的作者),它基本上是 PyYAML 功能的扩展。当我对这个代码进行了分支时,我从头创建了一个 setup.py 文件,这样你就可以在
python setup.py install --user
中顺利运行,前提是你从 PyPI 下载的 tar.gz 文件中提取了这个 setup.py。