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

У меня есть easy_install и pip .

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

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

Прекратите использование su и sudo для запуска virtualenv.
Вам нужно запустить virtualenv как обычный пользователь.
Вы создали virtualenv с sudo, поэтому вы получаете эти ошибки.

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

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

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

Читайте: http://peak.telecommunity.com/DevCenter/EasyInstall#creating-a-virtual-python

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

Учитывая, что ваш python имеет версию 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 были бы хороши. Но он выполняет свою работу.

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

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 после загрузки tarballs по адресу https://github.com/pypa/virtualenv/tree/develop/virtualenv_support

Вы также можете использовать приведенную ниже команду, она работала для меня без доступа sudo . Вам также может потребоваться изменить переменную среды PYTHONPATH с помощью export , см. Этот ответ SO для получения более подробной информации .

pip install --user virtualenv

Я создал «портативную» версию virtualenv .

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

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

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

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

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

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

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

Возможно, вы захотите использовать 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 

Самый простой способ, который я видел до сих пор, – установить 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