web-dev-qa-db-fra.com

Comment spécifier la version de python utilisée pour créer un environnement virtuel?

Mes environnements virtuels Python utilisent python3.6 lorsque je les crée avec virtualenv

~ $ virtualenv my_env

mais je dois utiliser python3.5 car 3.6 est n'est actuellement pas pris en charge par Opencv3.

J'ai essayé d'utiliser l'indicateur --python=<py_version> lors de la création d'un environnement virtuel, mais cela ne fonctionne pas.

Comment spécifier la version de python (3.x) à installer à l'aide de virtualenv pour Mac et/ou Linux?

18
Danoram

En supposant que vous ayez installé python3 ou n’importe quelle version de Python de votre choix (2.6, 2.7, 3.5, 3.6), lors de la création de l’environnement virtuel, passez directement le chemin de l’exécutable python. Par conséquent, voici quelques exemples valables

$ virtualenv new_p2_env # Creates a new default python environment (usually python 2)

$ virtualenv -p python3 new_p3_env # Creates a new default python3 (python3 must be a valid command i.e found in the PATH) 

Enfin

# Directly point to any version of python binary, this can be even another virtualenv's bin/python. 
$ virtualenv -p /path/to/any/python/executable new_env 
21
nehemiah

Alternativement, je pense que vous pourriez utiliser la version spécifique de Python lui-même pour créer l'environnement virtuel. De cette façon, vous saurez avec certitude que c'est la bonne version:

$ python3.5 -m venv test35
$ ./test35/bin/python
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 26 2016, 10:47:25)
[GCC 4.2.1 (Apple Inc. build ) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

Référence à https://docs.python.org/3.5/library/venv.html

5
Mariano Anaya

A partir de la version 3.3, python inclut un paquet nommé venv. Toutefois, ce package ne fournit pas les mêmes fonctionnalités que le package virtualenv traditionnel.

venv permet de créer des environnements virtuels uniquement pour la version de python pour laquelle il est installé .virtualenv permet de créer des environnements virtuels pour différentes versions de python en fournissant le chemin d'accès au binaire.

Créer des envs virtuels pour différentes versions de python:

Supposons donc que python 2.7 et 3.6 ont été installés dans /path/to/ et qu'ils veulent créer l’env virtuel nommé respectivement env-py36 avec python 3.6 et env-py27 avec python 2.7.

# create a virtual env with python3's venv :
/path/to/python36/bin/python3 -m venv /my/python-venvs/env-py36
. /my/python-venvs/env-py36/bin/activate
# we're now running python 3's "env-py36" virtual env, we want to install the "virtualenv" package
pip install virtualenv
deactivate
# now use virtualenv to create a virtual environment for python 2.7
/my/python-venvs/env-py36/bin/virtualenv --python=/path/to/python27/bin/python /my/python-venvs/env-py27

Utilisation de python 3.3+ venv

Python 3.3+:

/path/to/python3/bin/python3 -m venv ENV_DIR

Python 3.3 à 3.5 (obsolète en 3.6+):

/path/to/python3/bin/pyvenv ENV_DIR

Sources:

3
Thomas

Je travaille sur Ubuntu et MacOS

Ubuntu: virtualenv -p python3.6 environment_file

Mac OS: virtualenv -p python3.6 environment_file

Je pense que ça soit pareil

0
Viktor