web-dev-qa-db-fra.com

Comment installer virtualenv sans utiliser sudo?

J'ai easy_install et pip.

J'ai eu beaucoup d'erreurs sur mon Linux Mint 12 , je viens de le réinstaller et je veux tout réinstaller à partir de zéro.

This est l'une des erreurs que j'ai eues. J'ai reçu là une réponse intéressante:

Arrêtez d'utiliser su et Sudo pour exécuter virtualenv.
Vous devez exécuter virtualenv en tant qu'utilisateur normal.
Vous avez créé le virtualenv avec Sudo, c'est pourquoi vous obtenez ces erreurs.

Alors, comment installer virtualenv sans utiliser Sudo? Puis-je utiliser pipou easy_install sans utiliser Sudo? Ou existe-t-il un autre moyen?

30
Lynob

Cette solution convient dans les cas où aucun virtualenv n'est disponible à l'échelle du système et où vous ne pouvez pas devenir root pour installer virtualenv. Quand je mets en place un debian pour python je toujours apt-get install python-virtualenv. Il est plus pratique de l'avoir que de faire le bootstrap souligné ci-dessous. Mais sans pouvoir root, c'est peut-être la voie à suivre:

Il existe un mécanisme bootstrap qui devrait vous aider à démarrer.

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

En gros, vous feriez cela dans votre répertoire personnel dans un environnement Unix:

Étant donné votre python est la version 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 yyouare 
 

Il peut y avoir place pour l'optimisation. Je n'aime pas le chemin local. Juste bin et lib serait bien. Mais il fait son travail.

27
itsafire

L'idée générale est d'installer virtualenv lui-même globalement, c'est-à-dire Sudo easy_install virtualenv ou Sudo pip install virtualenv, mais ensuite créer l'environnement virtuel réel ("exécuter virtualenv") localement.

15
ThiefMaster

Vous pouvez également utiliser la commande ci-dessous, cela a fonctionné pour moi sans accès à Sudo. Vous devrez peut-être également modifier votre variable d'environnement PYTHONPATH à l'aide de export, voir cette réponse SO pour plus de détails .

pip install --user virtualenv

10
champost

http://opensourcehacker.com/2012/09/16/recommended-way-for-Sudo-free-installation-of-python-software-with-virtualenv/ suggère ce qui suit:

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

Cela semble bien fonctionner. Il me permet d'installer https://github.com/miohtama/vvv avec pip.

Si vous obtenez:

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

Essayez --extra-search-dir après avoir téléchargé les tarballs sur https://github.com/pypa/virtualenv/tree/develop/virtualenv_support

9
Philip Durbin

This a fonctionné pour moi:

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

Maintenant je peux pip install tout ce que je veux (sauf pour tout ce qui a besoin de compiler des choses avec gcc et qui a des dépendances manquantes telles que les bibliothèques de développement python et Python.h).

3
jozxyqk

J'ai créé un "portable" version de virtualenv .

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

Il télécharge virtualenv.py script avec dépendances dans .locally subdir et l'exécute à partir de là. Une fois cela fait, le script avec .locally/subdir peut être copié n'importe où.

2
anatoly techtonik

Fondamentalement, l'idée est d'installer virtualenv (ou tout autre python) dans ${HOME}/.local. C'est l'emplacement le plus approprié car il est inclus dans python par défaut (et pas seulement Python).

Que vous faites par pip3 install virtualenv --prefix=${HOME}/.local (vous devrez peut-être développer ${HOME}). Assurez-vous que vous disposez de export PATH=${HOME}/.local/bin:${PATH} dans ton ~/.profile (vous devrez peut-être source ~/.profile si elle vient d'être ajoutée)

2
Slava

Vous voudrez peut-être envisager d'utiliser Anaconda . C'est une distribution complète Python, qui vit dans un dossier, par exemple dans votre répertoire personnel. Aucun Sudo n'est nécessaire à tout moment et vous obtenez la plupart des packages populaires.

$ 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
1
stpk

La façon la plus simple que j'ai vue jusqu'à présent est d'installer Anaconda. Cela peut être exagéré pour vous. Pour moi, le centOS fonctionnant sur le serveur distant n'avait installé que python2.6. Anaconda par défaut installe tout localement + c'est python2.7

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

Alors

bash Anaconda2-4.2.0-Linux-x86_64.sh

Boom. Vous avez tous les packages comme numpy et pip installés. Ensuite, si vous voulez virtualenv, tapez simplement

pip install virtualenv
1
Binu Jasim