malikarumi@Tetouan2:~$ pip install virtualenv
Collecting virtualenv
Downloading virtualenv-12.0.7-py2.py3-none-any.whl (1.8MB)
100% |################################| 1.8MB 330kB/s
malikarumi@Tetouan2:~$ pip freeze
(a lot of stuff, but not virtualenv)
malikarumi@Tetouan2:~$ virtualenv testvenv1
The program 'virtualenv' is currently not installed. You can install it by typing:
Sudo apt-get install python-virtualenv
Qu'est-ce qui se passe ici? est python-virtualenv == pyvenv? N'est-ce pas encore cassé? Virtualenv original fonctionne-t-il toujours avec python? si venv (trop de variantes de noms !!!) fait partie de la bibliothèque standard, https://docs.python.org/3/library/venv.html , pourquoi me demande-t-on d'installer il?
Et quand j'ai essayé de l'installer, j'ai eu:
malikarumi@Tetouan2:~$ Sudo apt-get install python-virtualenv
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
python-colorama python-distlib python-html5lib python-pip python-setuptools
A ce moment-là, j'ai abandonné, car installer python3-pip juste avant cela m'avait donné
Setting up python3-setuptools (3.3-1ubuntu1) ...
Setting up python3-pip (1.5.4-1) ...
Et je ne savais pas si les paquets supplémentaires les écraseraient ou iraient sur python 2.7.
J'ai lu que python 3 est supposé être la valeur par défaut pour l'avenir. Comme 2.7 et 3.4 existent et ont des commandes séparées, comment puis-je non seulement m'assurer que Python 3 est ma valeur par défaut, mais que tout ce que j'installe y est utilisé et qu'il est utilisé au lieu de 2.7?
En passant, j'ai essayé Sudo apt-get python3-virtualenv et j'ai: E: Impossible de localiser le paquet python3-virtualenv
Pour installer les packages Python 3.x dans un environnement virtuel Python, vous devez créer l'environnement virtuel Python à l'aide de l'environnement virtuel Python 3. créateur (python3-virtualenv). python3-virtualenv se trouve dans les référentiels Ubuntu par défaut dans Ubuntu 14.10 et versions ultérieures.
Installer Python 3 créateur d'environnement virtuel
Sudo apt install virtualenv python3-virtualenv
Créez un environnement virtuel Python pour python3. Vous pouvez uniquement installer des packages python3 dans cet environnement virtuel Python. Si vous souhaitez également installer les packages Python 2.x, vous devez créer un autre environnement virtuel Python.
virtualenv -p python3 env
source ./env/bin/activate
Le nouvel environnement virtuel Python pour python3 sera créé dans le répertoire env
qui se trouve dans le répertoire actuel.
Installez les packages Python.
cd/path/to/env/# env est le répertoire de l'environnement virtuel python3. bin source/activate pip3 install nom-premier-paquet nom-prochain-paquet dernier-nom-paquet
Il s'agit d'un nouvel environnement virtuel python3 doté de la dernière version de pip3. L'installation des packages Python fonctionnera donc parfaitement.
Sudo apt-get install virtualenvwrapper
gedit .bashrc
Ajoutez la ligne suivante à la fin de .bashrc.
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
Enregistrez les modifications dans .bashrc et fermez gedit. Source votre .bashrc pour que les modifications prennent effet.
cd
source .bashrc
Créez un environnement virtuel Python pour python3. Vous pouvez uniquement installer des packages python3 dans cet environnement virtuel Python. Si vous souhaitez également installer les packages Python 2.x, vous devez créer un autre environnement virtuel Python.
mkvirtualenv py3 -p /usr/bin/python3
Le nouvel environnement virtuel Python pour python3 sera créé dans le répertoire ~/.virtualenvs/py3
. .virtualenvs
est un dossier caché.
Installez un paquet.
cd ~/.virtualenvs/py3 corbeille source/activer pip3 installer nom du paquet
Eh bien, ça se complique. Ce qui suit est illustré par rapport à Ubuntu Xenial (qui est la version sous-jacente pour Linux Mint que j'utilise). Réglons-le:
Il fait référence au script wrapper de Python 3.3+ paquet stdlib . Mais il est obsolète depuis Python 3.6.
C'est aussi un paquet PyPi , qui est un commutateur d'environnement virtuel.
C'est le Python 3.3+ paquet stdlib dont le but était d'améliorer et de remplacer le PyPi paquet virtualenv (voir PEP 405 ) . Mais il semble que ce n’est pas encore là (du moins pas aussi complet).
$ apt-cache show virtualenv | grep Depends
Depends: python3, python3-virtualenv
Comme vous pouvez le voir, il fonctionne sur Python 3. Le paquetage python-virtualenv
est conçu pour être utilisé comme python2 -m virtualenv py2
. Voyons comment virtualenv
fonctionne sur une nouvelle version de Ubuntu Xenial (docker run --rm -it ubuntu:xenial
):
$ virtualenv
bash: virtualenv: command not found
$ apt-get update
...
$ apt-get install --yes --no-install-recommends virtualenv
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
ca-certificates dh-python libexpat1 libmpdec2 libpython3-stdlib
libpython3.5-minimal libpython3.5-stdlib libsqlite3-0 libssl1.0.0
mime-support openssl python-pip-whl python3 python3-minimal
python3-pkg-resources python3-virtualenv python3.5 python3.5-minimal
Suggested packages:
libdpkg-Perl python3-doc python3-tk python3-venv python3-setuptools
python3.5-venv python3.5-doc binutils binfmt-support
Recommended packages:
file
The following NEW packages will be installed:
ca-certificates dh-python libexpat1 libmpdec2 libpython3-stdlib
libpython3.5-minimal libpython3.5-stdlib libsqlite3-0 libssl1.0.0
mime-support openssl python-pip-whl python3 python3-minimal
python3-pkg-resources python3-virtualenv python3.5 python3.5-minimal
virtualenv
...
$ virtualenv test
The executable python2 (from --python=python2) does not exist
$ virtualenv -p python3 py3
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /py3/bin/python3
Also creating executable in /py3/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
$ . py3/bin/activate
(py3) $ python --version
Python 3.5.2
(py3) $ deactivate
$ apt-get install --yes --no-install-recommends python
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libffi6 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib
python-minimal python2.7 python2.7-minimal
Suggested packages:
python-doc python-tk python2.7-doc binutils binfmt-support
The following NEW packages will be installed:
libffi6 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python
python-minimal python2.7 python2.7-minimal
...
$ virtualenv py2
Running virtualenv with interpreter /usr/bin/python2
New python executable in /py2/bin/python2
Also creating executable in /py2/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
$ . py2/bin/activate
(py2) $ python --version
Python 2.7.12
Comme vous pouvez le constater même si le paquet virtualenv
utilise python3-virtualenv
, sa valeur par défaut est de créer un environnement Python 2.