¿Cómo especificar la versión de python utilizada para crear un entorno virtual?

Mis entornos virtuales de Python usan python3.6 cuando los creo usando virtualenv

~ $ virtualenv my_env

pero necesito usar python3.5 ya que 3.6 actualmente no es compatible con Opencv3 .

He intentado usar el --python= al crear un entorno virtual, pero esto no funciona.

¿Cómo especifico la versión de python (3.x) para instalar usando virtualenv para Mac y / o Linux?

Suponiendo que haya instalado python3 o cualquier versión deseada de Python (2.6, 2.7, 3.5, 3.6), ahora, al crear el entorno virtual, pase directamente la ruta ejecutable de python. Por lo tanto aquí hay algunos ejemplos válidos.

 $ 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 ie found in the PATH) 

Y última

 # 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 

Alternativamente, creo que podrías usar la versión específica de Python para crear el entorno virtual. De esa manera, sabrás con seguridad que es la versión correcta:

 $ 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. >>> 

Consulte en https://docs.python.org/3.5/library/venv.html

A partir de la versión 3.3, python incluye un paquete llamado venv . Sin embargo, ese paquete no proporciona las mismas funcionalidades que el paquete virtualenv tradicional.

venv permite crear entornos virtuales solo para la versión de python para la que está instalado. virtualenv permite crear entornos virtuales para diferentes versiones de python proporcionando la ruta al binario.

Creando envs virtuales para diferentes versiones de python:

Entonces, asumiendo que uno tiene python 2.7 y python 3.6 instalado en /path/to/ y quiere crear el env virtual llamado respectivamente env-py36 con python 3.6 y env-py27 con 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 

Usando Python 3.3 + Venv

Python 3.3+:

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

Python 3.3 a 3.5 (obsoleto en 3.6+):

 /path/to/python3/bin/pyvenv ENV_DIR 

Fuentes:

  • Creando Entornos Virtuales
  • Python 3.3 Venv
  • Paquete virtualenv de Python

Estoy trabajando en todo Ubuntu y MacOS

Ubuntu: virtualenv -p python3.6 environment_file

Mac OS: virtualenv -p python3.6 environment_file

Creo que sera igual