Как я могу установить модуль YAML для Python без ROOT ACCESS («easy_install» и «pip» недоступны)?

Я пытаюсь запустить скрипт python, который вызывает модуль yaml на сервере. У меня только права на запись в моем домашнем каталоге. На сервере установлен Python 2.7.3. У меня нет доступа root. Кроме того, доступны ни pip, ни easy_install .

Я загрузил пакет и попытался запустить

python setup.py install --user 

который дает ошибку

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

Как я могу заставить это работать?

Настройка и использование virtualenv почти всегда является хорошим вариантом, и, как вы указали, вы можете скачать virtualenv.py , но это не будет работать (больше) без установки pip , поскольку он пытается установить колеса. В Linux Mint с Python 2.7.6 скрипт, например, бросает:

OSError: Command / home / ruamel / venv / bin / python -c "import sys, pip; sys … d \"] + sys.argv [1:])) "setuptools wheel failed с кодом ошибки 1

Вероятно, вы можете обойти это, используя более старый virtualenv.py .

В некоторых других случаях нецелесообразно использовать virtualenv: например, когда системный python имеет все предустановленные библиотеки, которые вам нужно использовать, и не может реплицироваться в локальный virtualenv. В этом случае вы можете загрузить последнюю версию ruamel.yaml (которой я являюсь автором) и которая по сути является надмножеством функций PyYAML. Когда я разветвлял код, я создал setup.py с нуля, и это позволяет вам делать

 python setup.py install --user 

без проблем на `setup.py, извлеченном из файла tar.gz, загруженного из PyPI.

Основываясь на идее ответа Антона, эти шаги работали для меня

 pip install --user ruamel.yaml 

затем замените в своем скрипте

 import yaml 

с:

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