Как я могу установить модуль Python YAML без 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
Как я могу заставить это работать?
2 ответа
Исходя из идеи ответа Антона, эти шаги сработали для меня
pip install --user ruamel.yaml
тогда замени в своем скрипте
import yaml
с:
from ruamel.yaml import YAML
yaml=YAML(typ='safe')
Настройка и использование virtualenv - почти всегда хороший вариант, и, как вы указали, вы можете скачать virtualenv.py, но он не будет работать (больше) без pip
устанавливается, потому что он пытается установить колеса. В Linux Mint с Python 2.7.6 скрипт, например, выдает:
Ошибка OSE: команда /home/ruamel/venv/bin/python -c "import sys, pip; sys...d\"] + sys.argv[1:]))"Колесо setuptools не выполнено с кодом ошибки 1
Вы, вероятно, можете обойти это, используя старые virtualenv.py
,
В некоторых других случаях невозможно использовать virtualenv: например, когда в системном питоне предустановлены все виды библиотек, которые вам нужно использовать, и они не могут реплицироваться в локальный virtualenv. В этом случае вы можете загрузить последнюю версию ruamel.yaml ( автором которой я являюсь) и которая по сути является расширенным набором функций PyYAML. Когда я раздвоил код, я создал файл setup.py с нуля, и он позволяет вам
python setup.py install --user
без проблем в файле `setup.py, извлеченном из файла tar.gz, загруженного из PyPI.