web-dev-qa-db-fra.com

Comment configurer et utiliser un environnement virtuel python dans Ubuntu?

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?

72
Gerhard Burger

With virtualenvwrapper (wrappers conviviaux pour la fonctionnalité de virtualenv)

Installer virtualenv

Installez virtualenv avec

Sudo apt-get install virtualenv

(pour Ubuntu 14.04 (fiable), installez 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 pip3 au lieu de pip dans la suite de ce guide).

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

    Courir

    pip completion --bash >> ~/.bashrc
    

    et exécutez source ~/.bashrc pour l'activer.

  2. Installer virtualenvwrapper

    Parce que nous voulons éviter Sudo pip nous installons virtualenvwrapper localement (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 variable WORKON_HOME qui contient le répertoire dans lequel nos environnements virtuels doivent être stockés. Faisons ce ~/.virtualenvs

export WORKON_HOME=~/.virtualenvs

maintenant aussi créer ce répertoire

mkdir $WORKON_HOME

et mettez cette exportation dans notre fichier ~/.bashrc pour que cette variable soit automatiquement définie

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

Nous pouvons également ajouter des astuces supplémentaires comme celle-ci, qui garantit que si pip crée un environnement virtuel supplémentaire, il est également placé dans notre répertoire WORKON_HOME:

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

Source ~/.bashrc pour charger les modifications

source ~/.bashrc

Teste si cela fonctionne

Nous créons maintenant notre premier environnement virtuel. L'argument -p est facultatif. Il est utilisé pour définir la version Python à utiliser. il peut également s'agir de python3 par 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 voir beaucoup de /home/user/.virtualenv/... car il n’utilise plus vos paquets site site.

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

Profitez-en!


Merci à l'auteur de cet article de blog .

99
Gerhard Burger

Les environnements virtuels offrent un moyen de gérer et d'isoler les dépendances projet par projet. De plus, ils évitent également toute la situation de Sudo pip install, qui constitue un risque pour la sécurité, comme expliqué dans https://askubuntu.com/a/802594/15003 . La documentation officielle 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 est d'installer virtualenvà l'aide de aptou apt-get. Pour chaque projet Python, créez un fichier virtualenv, puis activez-le. Notez que virtualenv est spécifique à une version Python particulière. Après l'activation, utilisez pippour installer les packages Python comme d'habitude, que vous utilisiez ou non Python 2 ou 3; il n'est pas nécessaire d'utiliser pip3 pour Python 3. Sudoest utilisé uniquement pour installer virtualenvet n'est pas utilisé avec pipname__, é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 virtualenv venv par:

virtualenv venv -p python3

En savoir plus sur les différentes options pour virtualenvà https://virtualenv.pypa.io/fr/stable/ .

8
edwinksl

C'est facile, vous installez python-virtualenv . Ensuite, vous pouvez créer un virtualenv avec la commande virtualenv. Voir leur documentation pour plus.

4
tumbleweed

Avec le module venv disponible à partir de 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 module ensurepipn'est pas disponible):

Sudo apt-get install python3-venv

Après cela, vous pouvez utiliser

pyvenv myvirtualenv

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

source myvirtualenv/bin/activate

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

deactivate

EDIT: Le script pyvenvest obsolète en faveur de python3 -m venv. Cela évite toute confusion quant à la connexion de Python interprète pyvenvet donc de quel interprète Python sera utilisé par l'environnement virtuel. ( source )

3
Gerhard Burger