Comment configurer et utiliser un environnement virtuel Python dans Ubuntu?

73

Les environnements virtuels Python permettent de créer des environnements Python isolés afin d’éviter les conflits de dépendances et de versions, mais également de s’occuper indirectement des problèmes d’autorisation. Mais quel est le moyen le plus simple de le configurer et de l’utiliser dans Ubuntu?

Gerhard Burger
la source

Réponses:

99

Avec virtualenvwrapper(emballages conviviaux pour la fonctionnalité de virtualenv)

Installez virtualenv

Installer virtualenvavec

sudo apt-get install virtualenv

(pour Ubuntu 14.04 (trusty) installer python-virtualenv)

Installer virtualenvwrapper

La raison pour laquelle nous installons également virtualenvwrapper est qu’elle offre des commandes simples et agréables pour la gestion de vos environnements virtuels. Il y a deux façons d'installer virtualenvwrapper:

En tant que paquet Ubuntu (à partir de Ubuntu 16.04)

Courir

sudo apt install virtualenvwrapper

puis courir

echo "source /usr/share/virtualenvwrapper/virtualenvwrapper.sh" >> ~/.bashrc

Utilisation de pip

  1. Installer et / ou mettre à jour pip

    Installez pip pour Python 2 avec

    sudo apt-get install python-pip

    ou pour Python 3

    sudo apt-get install python3-pip

    (Si vous utilisez Python 3, vous devrez peut-être utiliser à la pip3place du pipreste de ce guide).

    Facultatif (mais recommandé): Activer bash autocomplete for pip

    Courir

    pip completion --bash >> ~/.bashrc

    et courir source ~/.bashrcpour activer.

  2. Installer virtualenvwrapper

    Parce que nous voulons éviter,sudo pip nous installons virtualenvwrapperlocalement (par défaut sous ~/.local) avec:

    pip install --user virtualenvwrapper

    et

    echo "export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3" >> ~/.bashrc
  3. Virtualenvwrapper source dans .bashrc

    echo "source ~/.local/bin/virtualenvwrapper.sh" >> ~/.bashrc

Configurez virtualenv et virtualenvwrapper:

Nous exportons d’abord la WORKON_HOMEvariable contenant le répertoire dans lequel nos environnements virtuels doivent être stockés. Faisons cela~/.virtualenvs

export WORKON_HOME=~/.virtualenvs

maintenant aussi créer ce répertoire

mkdir $WORKON_HOME

et mettre cette exportation dans notre ~/.bashrcfichier pour que cette variable soit automatiquement définie

echo "export WORKON_HOME=$WORKON_HOME" >> ~/.bashrc

Nous pouvons également ajouter des astuces supplémentaires comme celles-ci, qui permettent de s'assurer que, si pipun environnement virtuel supplémentaire est créé, il est également placé dans notre WORKON_HOMErépertoire:

echo "export PIP_VIRTUALENV_BASE=$WORKON_HOME" >> ~/.bashrc 

Source ~ / .bashrc pour charger les modifications

source ~/.bashrc

Testez si cela fonctionne

Nous créons maintenant notre premier environnement virtuel. L' -pargument est facultatif, il est utilisé pour définir la version Python à utiliser. ça peut aussi être python3par exemple.

mkvirtualenv -p python2.7 test

Vous verrez que l'environnement sera configuré et votre invite inclut désormais le nom de votre environnement actif entre parenthèses. Aussi, si vous courez maintenant

python -c "import sys; print sys.path"

vous devriez en voir beaucoup /home/user/.virtualenv/...car il n'utilise plus vos paquets de site système.

Vous pouvez désactiver votre environnement en exécutant

deactivate

et si vous voulez y travailler à nouveau, tapez simplement

workon test

Enfin, si vous souhaitez supprimer votre environnement, tapez

rmvirtualenv test

Prendre plaisir!


Merci à l'auteur de ce blog .

Gerhard Burger
la source
2
python-pipet python-virtualenvsont installables via le répertoire Ubuntu, aucune installation manuelle n’est nécessaire.
Timo
2
Cependant, dans Ubuntu, nous recommandons les paquets Ubuntu pour plusieurs raisons. Il n'y a rien de mal avec les anciennes versions de pip ou virtualenv, elles sont parfaitement capables.
tumbleweed
1
@GerhardBurger: Si vous créez un virtualenv python3, il obtiendra un pip qui fonctionne dans python3. Si vous utilisez virtualenv d'Ubuntu pour créer virtualenv, tout ce que vous avez fait sera contenu dans virtualenv. Si vous lancez sudo easy_installing, cela va semer le désordre dans / usr / local, ce n'est pas anodin à nettoyer, sans grand gain.
Tumbleweed
ressemble à un alias n'est pas nécessaire maintenant: sa --no-site-packagesvaleur par défaut est --distributeobsolète
int_ua
Au cas où mkvirtualenv testcela ne fonctionnerait pas, voir aussi: stackoverflow.com/questions/15608236/…
Nikos Alexandris
8

Les environnements virtuels offrent un moyen de gérer et d'isoler les dépendances projet par projet. En outre, ils évitent également toute la sudo pip installsituation, qui constitue un risque pour la sécurité, comme je l'ai expliqué dans https://askubuntu.com/a/802594/15003 . La documentation officielle de Python encourage également l'utilisation des environnements virtuels .

Le moyen le plus simple de créer et d'utiliser des environnements virtuels pour Python 2 et Python 3 consiste à installer à l' virtualenvaide de aptou apt-get. Pour chaque projet Python, créez un virtualenv puis activez-le. Notez que virtualenv est spécifique à une version particulière de Python. Après l'activation, utilisez pippour installer les packages Python comme d'habitude, que vous utilisiez Python 2 ou 3; il n’est pas nécessaire d’utiliser pip3Python 3. sudon’est utilisé que pour installer virtualenvet n’est pas utilisé avec pip, évitant ainsi le risque de sécurité susmentionné. Les commandes à faire sont:

sudo apt update
sudo apt install virtualenv
cd ~/desired_directory  # cd to desired_directory
virtualenv venv  # create virtualenv named venv for default system Python, which is Python 2 for Ubuntu
source venv/bin/activate  # activate virtualenv
pip install -U pip  # upgrade pip in case it is outdated
pip install desired_package  # install desired_package

Si vous souhaitez créer un virtualenv pour Python 3, remplacez-le virtualenv venvpar:

virtualenv venv -p python3

En savoir plus sur les différentes cloches et de sifflets pour virtualenvau https://virtualenv.pypa.io/en/stable/ .

edwinksl
la source
1
sourceme sauve beaucoup de commandes
vnpnlz
OSError: [Errno 40] Trop de niveaux de liens symboliques: '/ var / www / html / python / check / venv / bin / python'
Saravanan Nandhan
@SaravananNandhan Veuillez poser une nouvelle question avec les détails nécessaires à la place.
Edwinksl
3

Avec le module venv disponible depuis Python 3.3 (et Ubuntu 15.10)

Les environnements virtuels (venvs) sont si populaires que la fonctionnalité est maintenant incluse dans python lui-même (à partir de la version 3.3). Pour l'utiliser sur Ubuntu, vous devez installer python3-venv(puisque le ensurepipmodule n'est pas disponible):

sudo apt-get install python3-venv

Après cela, vous pouvez utiliser

pyvenv myvirtualenv

pour créer un environnement virtuel appelé myvirtualenv. Vous pouvez alors utiliser

source myvirtualenv/bin/activate

activer l'environnement virtuel. Pour désactiver simplement, tapez

deactivate

EDIT: Le pyvenvscript a été déconseillé en faveur de python3 -m venv. Cela évite toute confusion quant à la pyvenvconnexion de l' interpréteur Python et, par conséquent, de l'interpréteur Python utilisé par l'environnement virtuel. ( source )

Gerhard Burger
la source