Usando Python 3 en virtualenv

Utilizando virtualenv , ejecuto mis proyectos con la versión predeterminada de Python (2.7). En un proyecto, necesito usar Python 3.4.

Utilicé brew install python3 para instalarlo en mi Mac. Ahora, ¿cómo creo un virtualenv que use la nueva versión?

por ejemplo, sudo virtualenv envPython3

Si lo bash

 virtualenv -p python3 test 

Yo obtengo:

 Running virtualenv with interpreter /usr/local/bin/python3 Using base prefix '/usr/local/Cellar/python3/3.4.0_1/Frameworks/Python.framework/Versions/3.4' New python executable in test/bin/python3.4 Also creating executable in test/bin/python Failed to import the site module Traceback (most recent call last): File "/Users/user/Documents/workspace/test/test/bin/../lib/python3.4/site.py", line 67, in  import os File "/Users/user/Documents/workspace/test/test/bin/../lib/python3.4/os.py", line 634, in  from _collections_abc import MutableMapping ImportError: No module named '_collections_abc' ERROR: The executable test/bin/python3.4 is not functioning ERROR: It thinks sys.prefix is '/Users/user/Documents/workspace/test' (should be '/Users/user/Documents/workspace/test/test') ERROR: virtualenv is not compatible with this system or executable 

Related of "Usando Python 3 en virtualenv"

simplemente corre

 virtualenv -p python3 envname 

Actualización después de la edición de OP:

Hubo un error en la versión OP de virtualenv, como se describe aquí . El problema se solucionó ejecutando:

 pip install --upgrade virtualenv 

Python 3 tiene un soporte integrado para entornos virtuales – venv . Podría ser mejor usar eso en su lugar. Refiriéndose a los documentos:

La creación de entornos virtuales se realiza ejecutando el script pyvenv:

pyvenv /path/to/new/virtual/environment

Actualización para Python 3.6 y más reciente:

Como pawciobiel comenta correctamente, pyvenv está en desuso a partir de Python 3.6 y la nueva forma es:

 python3 -m venv /path/to/new/virtual/environment 

Instalar los requisitos previos.

 sudo apt-get install python3 python3-pip virtualenvwrapper 

Crear un entorno virtual basado en Python3. Opcionalmente, habilite --system-site-packages flag.

 mkvirtualenv -p /usr/bin/python3  

Establecer en el entorno virtual.

 workon  

Instale otros requisitos usando el administrador de paquetes pip .

 pip install -r requirements.txt pip install  

Cuando se trabaja en varios proyectos de Python simultáneamente, generalmente se recomienda instalar paquetes comunes como pdbpp globalmente y luego reutilizarlos en virtualenvs.

El uso de esta técnica ahorra una gran cantidad de tiempo dedicado a buscar paquetes e instalarlos, además de consumir un mínimo espacio en disco y ancho de banda de red.

 sudo -H pip3 -v install pdbpp mkvirtualenv -p $(which python3) --system-site-packages  

Instrucciones específicas de Django.

Si hay una gran cantidad de paquetes de Python en todo el sistema, se recomienda no utilizar la --system-site-packages especialmente durante el desarrollo, ya que he notado que se ralentiza mucho el inicio de Django. Supongo que la inicialización del entorno Django es escanear y agregar manualmente todos los paquetes del sitio desde la ruta del sistema, lo que podría ser la razón. Incluso python manage.py shell vuelve muy lento.

Habiendo dicho ese experimento cual opción funciona mejor. Podría ser seguro simplemente omitir --system-site-packages flag para proyectos Django.

He probado pyenv y es muy útil para cambiar las versiones de python (global, local en carpeta o en virtualenv):

 brew install pyenv 

Luego instale la versión de Python que desee:

 pyenv install 3.5.0 

y simplemente cree virtualenv con la ruta a la versión de intérprete necesaria:

 virtualenv -p /Users/johnny/.pyenv/versions/3.5.0/bin/python3.5 myenv 

Eso es todo, comprueba la versión:

 . ./myenv/bin/activate && python -V 

También hay un complemento para pyenv pyenv-virtualenv pero no me funcionó de alguna manera.

 virtualenv --python=/usr/bin/python3  

trabajó para mi.

Puede especificar una versión específica de Python mientras crea un entorno.
Se menciona en virtualenv.py

 virtualenv --python=python3.5 envname 

En algunos casos, esta tiene que ser la ruta completa al ejecutable:

 virtualenv --python=/Users/username/.pyenv/versions/3.6.0/bin/python3.6 envname 

Como funciona

 parser.add_option( '-p', '--python', dest='python', metavar='PYTHON_EXE', help='The Python interpreter to use, eg, --python=python3.5 will use the python3.5 ' 'interpreter to create the new environment. The default is the interpreter that ' 'virtualenv was installed with (%s)' % sys.executable) 

Tuve el mismo mensaje de ERROR . La solución de tbrisker no funcionó en mi caso. En cambio esto resolvió el problema:

 $ python3 -m venv .env 

Además de las otras respuestas, recomiendo verificar qué instancia de virtualenv está ejecutando:

 which virtualenv 

Si esto aparece en / usr / local / bin, entonces es posible, incluso probable, que instale virtualenv (posiblemente usando una instancia de easy_tools o pip) sin usar el administrador de paquetes de su sistema (elabore en el caso de OP). Este fue mi problema

Hace años, cuando era aún más ignorante, había instalado virtualenv y estaba enmascarando el sistema virtual proporcionado por el paquete de mi sistema.

Después de eliminar este virtualenv viejo y roto, mis problemas desaparecieron.

Python ahora viene con su propia implementación de entorno virtual, con el nombre de “venv”. Yo sugeriría usar eso, en lugar de virtualenv.

Citando de venv – docs ,

En desuso desde la versión 3.6: pyvenv fue la herramienta recomendada para crear entornos virtuales para Python 3.3 y 3.4, y está en desuso en Python 3.6.

Modificado en la versión 3.5: Ahora se recomienda el uso de venv para crear entornos virtuales.

Para windows, para iniciar venv en algún proyecto, abra cmd:

 python -m venv "c:\path\to\myenv" 

(Sugeriría usar comillas dobles alrededor de la ruta del directorio si contiene espacios. Ejemplo: “C: / My Dox / Spaced Directory / Something”)

Una vez que se haya configurado venv, verá algunas carpetas nuevas dentro del directorio de su proyecto. Uno de ellos sería “Scripts”.

Para activar o invocar venv necesitas:

 C:\> \Scripts\activate.bat 

Puede desactivar un entorno virtual escribiendo “desactivar” en su shell. Con esto, ya está listo para instalar las bibliotecas específicas de su proyecto, que residirán en la carpeta “Lib”.

================================ Edit 1 ================ ==================== El escenario que será discutido a continuación no es lo que pidió originalmente, sólo añadir esto en caso de que alguien utilice vscode con extensión python

En caso de que use el código vs con su extensión de Python, podría enfrentar un problema con su pylint que apunta a la instalación global. En este caso, pylint no podrá ver los módulos que están instalados en su entorno virtual y, por lo tanto, mostrará errores al importar.

Aquí hay un método simple para superar esto.

 cd Workspace\Scripts .\Activate.ps1 code . 

Básicamente, primero activamos el entorno y luego invocamos vs-code para que pylint comience dentro del entorno y pueda ver todos los paquetes locales.

En python3.6 probé python3 -m venv myenv , según la documentación, pero python3 -m venv myenv tanto. Así que el comando muy simple y rápido es python -m venv yourenv Funcionó para mí en python3.6.

En Mac tuve que hacer lo siguiente para que funcionara.

 mkvirtualenv --python=/usr/bin/python3 YourEnvNameHere 

Esto es todo lo que necesita para ejecutar un entorno virtual en python / python3

Primero asegúrate de tener virtualenv y ahora

Correr:

 virtualenv -p python3  

En algún momento el cmd anterior falla, simplemente usa esto:

 python3 -m virtualenv  # you can specify full path instead  to install the file in a different location other than the current location 

Ahora activa el env virtual:

 source /bin/activate 

O:

 source `pwd`//bin/activate 

Ejecutar (para salir):

 deactivate 

Si instala python3 ( brew install python3 ) junto con virtualenv burrito , entonces puede hacer mkvirtualenv -p $(which python3) env_name

Por supuesto, sé que virtualenv burrito es solo una envoltura, pero me ha servido bien a lo largo de los años, reduciendo algunas curvas de aprendizaje.

virtualenv --python=/usr/local/bin/python3 esto agregará la ruta de python3 para su entorno virtual.

Funciono para mi

 virtualenv --no-site-packages --distribute -p /usr/bin/python3 ~/.virtualenvs/py3 

Para aquellos que tienen problemas mientras trabajan con Anaconda3 (Python 3).

Usted podría usar

 conda create -n name_of_your_virtualenv python=python_version 

Activar el entorno (Linux, MacOS).

 source activate name_of_your_virtualenv 

Para ventanas

 activate name_of_your_virtualenv 

Intenté todo lo anterior, todavía no funcionó. Entonces, como fuerza bruta, simplemente reinstalé la anaconda, reinstalé el virtualenv … y funcionó.

 Amans-MacBook-Pro:~ amanmadan$ pip install virtualenv You are using pip version 6.1.1, however version 8.1.2 is available. You should consider upgrading via the 'pip install --upgrade pip' command. Collecting virtualenv Downloading virtualenv-15.0.3-py2.py3-none-any.whl (3.5MB) 100% |████████████████████████████████| 3.5MB 114kB/s Installing collected packages: virtualenv Successfully installed virtualenv-15.0.3 Amans-MacBook-Pro:python amanmadan$ virtualenv my_env New python executable in /Users/amanmadan/Documents/HadoopStuff/python/my_env/bin/python Installing setuptools, pip, wheel...done. Amans-MacBook-Pro:python amanmadan$ 

Quería mantener python 2.7.5 como versión predeterminada en Centos 7, pero tener python 3.6.1 en un entorno virtual que se ejecuta junto con otros entornos virtuales en python 2.x

Encontré el enlace a continuación la mejor solución para la nueva versión de Python (python 3.6.1) https://www.digitalocean.com/community/tutorial_series/how-to-install-and-set-up-a-local-programming -environment-for-python-3 . Muestra los pasos para diferentes plataformas pero los pasos básicos son

  1. Instala python3.x (si no está presente) para tu plataforma
  2. Instala python3.x-devel para tu plataforma
  3. Cree un entorno virtual en Python 3.x (por ejemplo, $ python3.6 -m venv virenv_test_p3 /)
  4. Active el entorno de prueba para python 3.x (por ejemplo, fuente virenv_test_p3 / bin / activar)
  5. Instale los paquetes que desea usar en su nuevo entorno virtual de Python 3 y cuáles son compatibles (por ejemplo, instale Django == 1.11.2)

Para aquellos de ustedes que están usando pipenv y desean instalar una versión específica:

 pipenv install --python 3.6 

Recibí el mismo error debido a que es un conflicto con la instalación de miniconda3, así que cuando escribes “which virtualenv” y si has instalado miniconda y apunta a esa instalación, puedes eliminarlo (si eres como yo y no me he movido). todavía) o cambie su variable de entorno para que apunte a la instalación que desea.

En la línea de comandos de Windows, lo siguiente funcionó para mí. Primero descubre dónde se encuentran tus ejecutables de Python:

 where python 

Esto generará las rutas a los diferentes python.exe en su sistema. Aquí estaban los míos:

 C:\Users\carandangc\Anaconda3\python.exe C:\Python27\python.exe 

Así que para Python3, esto estaba ubicado en la primera ruta para mí, por lo que cd a la carpeta raíz de la aplicación donde quiero crear una carpeta de entorno virtual. Luego ejecuto lo siguiente, que incluye la ruta de acceso a mi ejecutable de Python3 y le asigno un nombre a mi entorno virtual ‘venv’:

 virtualenv --python=/Users/carandangc/Anaconda3/python.exe venv 

A continuación, active el entorno virtual:

 call venv\Scripts\activate.bat 

Finalmente, instale las dependencias para este entorno virtual:

 pip install -r requirements.txt 

Este requisito.txt podría completarse manualmente si conoce las bibliotecas / módulos necesarios para su aplicación en el entorno virtual. Si tenía la aplicación ejecutándose en otro entorno, entonces puede producir las dependencias automáticamente ejecutando lo siguiente (cd a la carpeta de la aplicación en el entorno donde está funcionando):

 pip freeze > requirements.txt 

Luego, una vez que tenga los requisitos.txt que ha ‘congelado’, puede instalar los requisitos en otra máquina o entorno limpio con lo siguiente (después de cd a la carpeta de la aplicación):

 pip install -r requirements.txt 

Para ver su versión de python en el entorno virtual, ejecute:

 python --version 

Entonces, voila … tienes tu Python3 corriendo en tu entorno virtual. Salida para mí:

 Python 3.7.2