Как установить virtualenv без использования sudo? - PullRequest
30 голосов
/ 19 февраля 2012

у меня easy_install и pip.

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

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

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

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

Ответы [ 9 ]

27 голосов
/ 19 февраля 2012

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

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

Читать: 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 было бы неплохо.Но это делает свою работу.

15 голосов
/ 19 февраля 2012

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

10 голосов
/ 17 апреля 2015

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

pip install --user virtualenv

8 голосов
/ 21 марта 2013

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

3 голосов
/ 11 ноября 2015

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

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

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

2 голосов
/ 18 апреля 2016

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

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

2 голосов
/ 24 июля 2014

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

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

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

1 голос
/ 03 декабря 2016

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

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