【问题标题】:How can I install the python module YAML without ROOT ACCESS ( 'easy_install' and 'pip' are not available)?如何在没有 ROOT ACCESS 的情况下安装 python 模块 YAML(“easy_install”和“pip”不可用)?
【发布时间】:2013-01-29 18:10:07
【问题描述】:

我正在尝试在服务器上运行调用 yaml 模块 的 python 脚本。我只有在我的主目录中有写权限。服务器安装了 Python 2.7.3。我没有root访问权限。此外,pipeasy_install 均不可用。

我已经下载了包并尝试运行

python setup.py install --user

这给出了错误

error: can't combine user with with prefix/exec_prefix/home or install_(plat)base

我怎样才能让它工作?

【问题讨论】:

  • 我唯一能想到的就是 virtualenv。我没有root,但我创建了一个virtualenv 并将符号链接mypipmython 添加到~/bin,现在我有自己的python 安装和pip,以及我希望的每个模块! pypi.python.org/pypi/virtualenv
  • 效果很好,谢谢!我最终做的是下载virtualenv.py 并简单地运行指定文件夹python virtualenv.py MYFOLDER
  • 这个有同样的错误和解决方法:stackoverflow.com/questions/4495120/…

标签: python installation pyyaml root-access


【解决方案1】:

设置和使用 virtualenv 几乎总是一个不错的选择,正如您所指出的,您可以下载 virtualenv.py,但是如果没有安装 pip,它将无法运行(不再),因为它会尝试安装轮子。在带有 Python 2.7.6 的 Linux Mint 上,脚本例如抛出:

OSError: 命令 /home/ruamel/venv/bin/python -c "import sys, pip; sys...d\"] + sys.argv[1:]))" setuptools wheel 失败,错误代码为 1

您可以通过使用较旧的virtualenv.py 来规避这一点。

在其他一些情况下,使用 virtualenv 是不可行的:例如当系统python预装了你需要使用的各种库并且无法复制到本地virtualenv中时。在这种情况下,您可以下载最新版本的 ruamel.yaml(我是其作者),它本质上是 PyYAML 功能的超集。当我分叉代码时,我从头开始创建了一个 setup.py,它允许你做

python setup.py install --user 

从 PyPI 下载的 tar.gz 文件中提取的 `setup.py 没有问题。

【讨论】:

    【解决方案2】:

    根据 Anton 的回答,这些步骤对我有用

    pip install --user ruamel.yaml
    

    然后在你的脚本中替换

    import yaml
    

    与:

    from ruamel.yaml import YAML
    yaml=YAML(typ='safe')
    

    【讨论】:

      猜你喜欢
      • 2016-02-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-19
      • 2019-10-16
      • 2011-04-13
      • 1970-01-01
      • 1970-01-01
      • 2011-08-15
      相关资源
      最近更新 更多