Files
mkdocs/docs/macos/python/virtuel.md
2021-02-04 09:55:26 +01:00

176 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Environnement virtuel en Python (> 3.3)
### venv
On crée un dossier pour regrouper tous les environnements virtuels:
```bash
$ cd
$ mkdir venv
$ cd venv
```
On crée l'environnement virtuel 'tuto-virtuel-env':
```bash
$ python -m venv tuto-virtuel-env
$ cd tuto-virtuel-env/
total 8
drwxr-xr-x 6 bruno staff 192 15 mar 07:29 .
drwxr-xr-x 3 bruno staff 96 15 mar 07:29 ..
drwxr-xr-x 12 bruno staff 384 15 mar 07:29 bin
drwxr-xr-x 2 bruno staff 64 15 mar 07:29 include
drwxr-xr-x 3 bruno staff 96 15 mar 07:29 lib
-rw-r--r-- 1 bruno staff 105 15 mar 07:29 pyvenv.cfg
```
L'environnement est crée avec la version courante de Python.
Si plusieurs versions de Python sont installées sur le système, on peut spécifier une version particulière en exécutant `python3.x`:
```bash
$ python3.6 -m venv tuto-venv-py36
```
On peut créer un environnement sans `pip`:
```bash
$ python -m venv env-sans-pip --without-pip
$ source env-sans-pip/bin/activate
(env-sans-pip) bruno@SilverBook:~/venv$ pip
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 583, in _build_master
```
On l'active:
```bash
# Pour bash:
$ source tuto-virtuel-env/bin/activate
(tuto-virtuel-env) bruno@SilverBook:~/venv$
# Pour csh ou fish:
activate.csh
activate.fish
```
On lance Python:
```bash
(tuto-virtuel-env) bruno@SilverBook:~/venv$ python
Python 3.7.2 (default, Feb 12 2019, 08:15:36)
[Clang 10.0.0 (clang-1000.11.45.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/usr/local/lib/python3.7/site-packages', '/usr/local/Cellar/python/3.7.2_2/Frameworks/Python.framework/Versions/3.7/lib/python37.zip', '/usr/local/Cellar/python/3.7.2_2/Frameworks/Python.framework/Versions/3.7/lib/python3.7', '/usr/local/Cellar/python/3.7.2_2/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload', '/Users/bruno/venv/tuto-virtuel-env/lib/python3.7/site-packages']
```
Sortir de l'environnement virtuel:
```bash
(tuto-virtuel-env) bruno@SilverBook:~/venv$ deactivate
bruno@SilverBook:~/venv$
```
Contenu de l'environnement virtuel:
```bash
(tuto-virtuel-env) bruno@SilverBook:~/venv/tuto-virtuel-env$ cd bin/
total 64
drwxr-xr-x 12 bruno staff 384 15 mar 07:29 .
drwxr-xr-x 6 bruno staff 192 15 mar 07:29 ..
-rw-r--r-- 1 bruno staff 2234 15 mar 07:29 activate
-rw-r--r-- 1 bruno staff 1290 15 mar 07:29 activate.csh
-rw-r--r-- 1 bruno staff 2442 15 mar 07:29 activate.fish
-rwxr-xr-x 1 bruno staff 263 15 mar 07:29 easy_install
-rwxr-xr-x 1 bruno staff 263 15 mar 07:29 easy_install-3.7
-rwxr-xr-x 1 bruno staff 245 15 mar 07:29 pip
-rwxr-xr-x 1 bruno staff 245 15 mar 07:29 pip3
-rwxr-xr-x 1 bruno staff 245 15 mar 07:29 pip3.7
lrwxr-xr-x 1 bruno staff 51 15 mar 07:29 python -> /usr/local/Cellar/python/3.7.2_2/libexec/bin/python
lrwxr-xr-x 1 bruno staff 6 15 mar 07:29 python3 -> python
(tuto-virtuel-env) bruno@SilverBook:~/venv/tuto-virtuel-env/bin$ which pip3
/Users/bruno/venv/tuto-virtuel-env/bin/pip3
(tuto-virtuel-env) bruno@SilverBook:~/venv/tuto-virtuel-env/bin$ which python3
/Users/bruno/venv/tuto-virtuel-env/bin/python3
```
Installer un module avec `pip`:
```bash
(tuto-virtuel-env) bruno@SilverBook:~/venv/tuto-virtuel-env/bin$ pip3 install easy-parse
(tuto-virtuel-env) bruno@SilverBook:~/venv/tuto-virtuel-env/bin$ pip3 freeze
...
docutils==0.14
easy-parse==0.1.1
entrypoints==0.3
...
(tuto-virtuel-env) bruno@SilverBook:~/venv/tuto-virtuel-env/bin$ deactivate
bruno@SilverBook:~/venv/tuto-virtuel-env/bin$ pip3 freeze
...
docutils==0.14
entrypoints==0.3
...
```
Le module installé dans l'environnement virtuel est disponible UNIQUEMENT dans l'environnement virtuel.
[https://www.python.org/dev/peps/pep-0405/](https://www.python.org/dev/peps/pep-0405/)
[https://docs.python.org/fr/3/library/venv.html](https://docs.python.org/fr/3/library/venv.html)
### pyvenv
#### Installer des modules pour un projet:
```bash
cd myproject
pipenv install requests
```
```bash
~/venv master* ⇡
python3 -m venv rpd
> cd rpd
bin/pip3 install -U pip setuptools
cp /Users/bruno/Downloads/install.py /Users/bruno/Documents/venv/rpd
source bin/activate
```