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

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


person user1895406    schedule 14.02.2013    source источник
comment
Единственное, о чем я могу думать, это virtualenv. У меня нет root, но я сделал virtualenv и добавил символические ссылки mypip и mython в ~/bin, теперь у меня есть собственная установка Python с pip и каждый модуль, на который я мог надеяться! pypi.python.org/pypi/virtualenv   -  person tkbx    schedule 14.02.2013
comment
Это работает отлично, спасибо! В итоге я скачал virtualenv.py и просто запустил его, указав папка python virtualenv.py MYFOLDER   -  person user1895406    schedule 14.02.2013
comment
Это имеет ту же ошибку и решение: stackoverflow.com/questions/4495120/   -  person    schedule 23.01.2014


Ответы (2)


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

OSError: Команда /home/ruamel/venv/bin/python -c "import sys, pip; sys...d\"] + sys.argv[1:]))" сбой колеса setuptools с кодом ошибки 1

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

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

python setup.py install --user 

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

person Anthon    schedule 07.06.2015

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

pip install --user ruamel.yaml

затем замените в своем сценарии

import yaml

с участием:

from ruamel.yaml import YAML
yaml=YAML(typ='safe')
person lefterav    schedule 12.07.2017