Как я могу установить модуль 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.

Другие вопросы по тегам