2012-02-19 2 views
26

У меня есть easy_install и pip.Как установить virtualenv без использования sudo?

У меня было много ошибок на моем Linux Mint 12, я просто переустановил его, и я хочу снова установить все с нуля.

This является одной из ошибок, которые у меня были. Я получил интересный ответ там:

Stop using su and sudo to run virtualenv.
You need to run virtualenv as your normal user.
You have created the virtualenv with sudo which is why you are getting these errors.

Так как установить virtualenv без использования sudo? Могу ли я использовать pip или easy_install без использования sudo? Или есть другой способ?

+2

Обратите внимание, что, когда он говорит '' su' и sudo', что это на самом деле означает ', как root'. Вы используете 'virtualenv' как root, а' virtualenv' не хочет запускаться как root. Снимите привилегии и повторите попытку. –

+0

Существует большая разница между установкой 'virtualenv' как root, стихи * running * it как root. Введенная вами цитата не говорит об установке 'virtualenv', а используется для настройки виртуальной среды для проекта Python. – jpaugh

ответ

25

Данное решение подходит в том случае когда virtualenv не доступен для работы с системой, и вы не можете стать root для установки virtualenv. Когда я настраивал debian для разработки или развертывания python, я всегда apt-get install python-virtualenv. Удобнее иметь это, чем делать ботстрап, указанный ниже. Но без корневой власти это может быть путь:

Существует механизм бутстрапа, который должен вас поймать.

Read: http://peak.telecommunity.com/DevCenter/EasyInstall#creating-a-virtual-python

По сути вы могли бы сделать это в вашем домашнем каталоге в среде UNIX:

Учитывая ваш питон версия 2,6

 

    $ mkdir ~/bin 
    $ mkdir -p ~/lib/python2.6 
    $ mkdir -p ~/local/lib/python2.6/dist-packages 
    $ wget http://peak.telecommunity.com/dist/virtual-python.py 
    $ python virtual-python.py --no-site-packages 
    $ wget http://peak.telecommunity.com/dist/ez_setup.py 
    $ ~/bin/python ez_setup.py 
    $ ~/local/bin/easy_install virtualenv 
    $ ~/local/bin/virtualenv --no-site-packages thereyouare 

Там может быть места для оптимизации. Мне не нравится путь local. Просто bin и lib было бы здорово. Но он выполняет свою работу.

+0

Большое спасибо за ваше решение! Использование 'python virtual-python.py --no-site-packages -prefix = \' pwd \ '', мы можем установить 'virtual-python' в папку, отличную от домашней, чтобы предотвратить загрязнение каталога. –

+2

с ключом -p вам нужна только третья строка ... рекурсивное создание каталога происходит просто. – RobotHumans

+14

Возможно, это было актуально для более старых версий virtualenv. На данный момент, если вы хотите запустить virtualenv на компьютере, вы не root: загрузите и отпустите один, если они: 'https: // github.com/pypa/virtualenv/релизы', а затем просто запустите' python virtualenv.py/path/to/new/virtualenv/to/create' – Claude

14

Общая идея заключается в том, чтобы установить virtualenv себя globaly, т.е. sudo easy_install virtualenv или sudo pip install virtualenv, но затем создать фактическую виртуальную среду («запустить virtualenv») на местном уровне.

+3

//, вопрос в том, как, как. Многие из пакетов virtualenv, особенно для CEntOS 6, в конечном итоге требуют, чтобы sudo был установлен. –

8

http://opensourcehacker.com/2012/09/16/recommended-way-for-sudo-free-installation-of-python-software-with-virtualenv/ предлагает следующее:

curl -L -o virtualenv.py https://raw.githubusercontent.com/pypa/virtualenv/master/virtualenv.py 
python virtualenv.py vvv-venv 
. vvv-venv/bin/activate 
pip install vvv 

кажется, работает хорошо. Это позволяет мне установить https://github.com/miohtama/vvv с pip.

Если вы получаете:

Cannot find sdist setuptools-*.tar.gz 
Cannot find sdist pip-*.tar.gz 

Попробуйте --extra-search-dir после загрузки тарболы на https://github.com/pypa/virtualenv/tree/develop/virtualenv_support

2

Я создал "портативный" version of virtualenv.

wget https://bitbucket.org/techtonik/locally/raw/tip/06.get-virtualenv.py 
python 06.get-virtualenv.py 

Он загружает virtualenv.py скрипт с зависимостями в .locally подкаталог и выполняет его оттуда. Как только это будет сделано, скрипт с .locally/subdir может быть скопирован где угодно.

+0

Используя ваше решение, я получаю эту ошибку: 'Проверка хеша/размер для /files/spegni/.locally/virtualenv.py Traceback (последний последний звонок): Файл «06.get-virtualenv.ру "строка 163, в getsecure (LOOT, специф_файлов) Файл "06.get-virtualenv.py", строка 132, в getsecure проверки (FilePath, запись [ 'hashsize'], тихий) Файл" 06 .get-virtualenv.py ", строка 113, в поле check % (путь к файлу, shize, hashsize (путь к файлу))) __main __. HashSizeCheckFailed: несоответствие хэш/размер для /files/spegni/.locally/virtualenv.py exp: a506a836ef76301bc19e5a209984a4286529a79b 98477 акт:.. d205cbd6783332a212c5ae92d73c77178c2d2f28 9' – FSp

+0

@FSp, pypa команда убила ветвь для 1.11.x версии Фиксированный попробовать –

+1

Обновлен virtualenv 12.0.7 –

6

Вы также можете использовать приведенную ниже команду, это сработало для меня без sudo доступа. Вам также может потребоваться изменить переменную среды PYTHONPATH, используя export, see this SO answer for more details.

pip install --user virtualenv

3

This работал для меня:

pip install --target=$HOME/virtualenv/ virtualenv 
cd somewhere/ 
python $HOME/virtualenv/virtualenv.py env 
. env/bin/activate 

Теперь я могу pip install все, что я хочу (ибо все, что нужно собрать материал с GCC и отсутствующего зависимостей, таких как библиотеки разработки питона и кроме Python.h).

1

Возможно, вы захотите использовать Anaconda. Это полноценный дистрибутив Python, который находится в папке, например. ваш домашний каталог. Нет sudo необходимо в любой момент, и вы получаете большинство популярных пакетов.

$ wget https://.../Anaconda2-2.5.0-Linux-x86_64.sh # check the website for the exact URL, it can change 
$ bash Anaconda2-2.5.0-Linux-x86_64.sh 
$ conda install virtualenv 
2

В принципе идея заключается в том, чтобы установить virtualenv (или любой другой пакет Python) в ${HOME}/.local. Это наиболее подходящее место, поскольку по умолчанию оно включено в путь python (и не только Python).

Что вы делаете по pip3 install virtualenv --prefix=${HOME}/.local (возможно, вам потребуется развернуть ${HOME}). Убедитесь, что у вас есть export PATH=${HOME}/.local/bin:${PATH} в вашем ~/.profile (возможно, потребуется source ~/.profile его, если только что добавили)

0

Самый простой способ, который я видел до сих пор является установка Anaconda. Это может быть излишним для вас. Для меня на centOS, работающем на удаленном сервере, был установлен только python2.6. Anaconda по умолчанию устанавливает все локально + это python2.7

curl -O https://repo.continuum.io/archive/Anaconda2-4.2.0-Linux-x86_64.sh 

Тогда

bash Anaconda2-4.2.0-Linux-x86_64.sh 

Boom. У вас есть все пакеты, такие как numpy и pip. Тогда, если вы хотите virtualenv, просто введите

pip install virtualenv 
+0

Это не отвечает на вопрос OP, он уже имеет пип и хочет.. установить virtualenv без sud о. – MYGz

+0

@Ghazi В вопросе говорится: «Я хочу снова установить все с нуля». Опять же, даже если он точно не ответит на вопрос ОП, кто-то найдет его полезным как I. –

+0

А что такое «все», определяемое как? Анаконда - это все по тебе? – MYGz

 Смежные вопросы

  • Нет связанных вопросов^_^