Usando virtualenv , ejecuto mis proyectos con la versión predeterminada de Python (2.7). En un proyecto, necesito usar Python 3.4.
Solía brew install python3
instalarlo en mi Mac. Ahora, ¿cómo creo un virtualenv que usa la nueva versión?
por ejemplo, sudo virtualenv envPython3
Si lo intento:
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 <module>
import os
File "/Users/user/Documents/workspace/test/test/bin/../lib/python3.4/os.py", line 634, in <module>
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
python
python-3.x
virtualenv
Prometeo
fuente
fuente
Respuestas:
simplemente corre
Actualización después de la edición de OP:
Hubo un error en la versión de OP de virtualenv, como se describe aquí . El problema se solucionó ejecutando:
fuente
virtualenv -p $(which python3) envname
virtualenv -p python3 my_virtual_env
, tambiénpython3
se puede acceder desde fuera del entorno virtual?bin
,lib
,include
,local
yshare
directorios en el directorio raíz de su proyecto. 2. En ejecución de terminal:virtualenv -p python3 .
que inicializa un nuevo Python3 virtualenv en el directorio actual.Python 3 tiene un soporte integrado para entornos virtuales: venv . Podría ser mejor usar eso en su lugar. En referencia a los documentos:
Actualización para Python 3.6 y más reciente:
Como pawciobiel correctamente comenta ,
pyvenv
está en desuso a partir de Python 3.6 y la nueva forma es:fuente
python3 -m venv /path/v3
dado que el script pyvenv ha quedado en desuso a partir de Python 3.6.python3 -m venv /path/v3
errores aquí.Error: Command '['/path/v3/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit
¿Me estoy perdiendo de algo? Con la--without-pip
opción, al menos crea el venv con activar / desactivar scripts correctamente.He probado pyenv y es muy útil para cambiar las versiones de Python (global, local en la carpeta o en el virtualenv):
luego instale la versión de Python que desee:
y simplemente cree virtualenv con la ruta a la versión de intérprete necesaria:
Eso es todo, verifique la versión:
También hay complementos para pyenv pyenv-virtualenv, pero de alguna manera no funcionó para mí.
fuente
Instalar requisitos previos.
Cree un entorno virtual basado en Python3. Opcionalmente habilitar
--system-site-packages
bandera.Establecer en el entorno virtual.
Instale otros requisitos utilizando el
pip
administrador de paquetes.Cuando se trabaja en múltiples 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 mucho tiempo en buscar paquetes e instalarlos, además de consumir un mínimo espacio en disco y ancho de banda de red.
Instrucciones específicas de Django
Si hay muchos paquetes de Python en todo el sistema, se recomienda no usar
--system-site-packages
flag especialmente durante el desarrollo, ya que he notado que ralentiza mucho el inicio de Django. Supongo que la inicialización del entorno Django está escaneando y agregando manualmente todos los paquetes del sitio desde la ruta del sistema, lo que podría ser la razón. Incluso sepython manage.py shell
vuelve muy lento.Habiendo dicho ese experimento, qué opción funciona mejor. Puede ser seguro simplemente omitir la
--system-site-packages
bandera para proyectos de Django.fuente
apt-get
brew
trabajó para mi.
fuente
The executable python3 (from --python=python3) does not exist
, ¿qué harías? Quería preparar isntall python3 pero no estaba seguro de si era una buena idea o si mi sistema se confundiría con la versión de python que estoy usandoPuede especificar una versión específica de Python mientras crea el entorno.
Se menciona en virtualenv.py
En algunos casos, esta tiene que ser la ruta completa al ejecutable:
Como
-p
funcionafuente
Tenía el mismo
ERROR
mensaje La solución de tbrisker no funcionó en mi caso. En cambio, esto resolvió el problema:fuente
Esto es todo lo que necesita para ejecutar un entorno virtual en python / python3
Primero, si
virtualenv
no está instalado, ejecuteAhora corre:
En algún momento el cmd
virtualenv
falla, si es así, use esto:Ahora active el entorno virtual:
O:
Ahora corre
Debería ver la ruta completa a su directorio y
<env_name>/bin/python
sufijoPara salir de virtualenv, ejecute:
fuente
Python ahora viene con su propia implementación de entorno virtual, con el nombre de "venv". Sugeriría usar eso, en lugar de virtualenv.
Citando de venv - docs ,
Para Windows, para iniciar venv en algún proyecto, abra cmd:
(Sugeriría usar comillas dobles alrededor de la ruta del directorio si contiene espacios. Ej: "C: / My Dox / Spaced Directory / Something")
Una vez que venv esté configurado, verá algunas carpetas nuevas dentro del directorio de su proyecto. Uno de ellos sería "Scripts".
Para activar o invocar venv necesita:
Puede desactivar un entorno virtual escribiendo "desactivar" en su shell. Con esto, ahora está listo para instalar las bibliotecas específicas de su proyecto, que residirán en la carpeta "Lib".
================================ Editar 1 ================ ==================== El escenario que se discutirá a continuación no es lo que se preguntó originalmente, solo se agrega esto en caso de que alguien use vscode con extensión de 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 durante la importación.
Aquí hay un método simple para superar esto.
Básicamente, estamos activando el entorno primero y luego invocando código vs para que pylint comience dentro del entorno y pueda ver todos los paquetes locales.
fuente
virtualenv
para el uso diario de entornos virtuales (workon
, etc.), pero para la creación confiable de nuevos entornos virtuales enpython3.x
esta es la única forma en que encontré que funciona.Además de las otras respuestas, recomiendo verificar qué instancia de virtualenv está ejecutando:
Si esto aparece en / usr / local / bin, entonces es posible, incluso probable, que haya instalado virtualenv (posiblemente usando una instancia de easy_tools o pip) sin usar el administrador de paquetes de su sistema (preparación 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 virtualenv proporcionado por el paquete de mi sistema.
Después de eliminar este viejo y roto virtualenv, mis problemas desaparecieron.
fuente
En python3.6 lo intenté
python3 -m venv myenv
, según la documentación, pero me estaba tomando mucho tiempo. Entonces, el comando muy simple y rápido espython -m venv yourenv
Funcionó para mí en python3.6.fuente
En Mac tuve que hacer lo siguiente para que funcione.
fuente
which python2.7
owhich python3.5
owhich python3.6
, vuelva a colocar la sobre--python=DIRECTORY
Si instala python3 (
brew install python3
) junto con virtualenv burrito , puede hacermkvirtualenv -p $(which python3) env_name
Por supuesto, sé que el burrito virtualenv es solo una envoltura, pero me ha servido mucho a lo largo de los años, reduciendo algunas curvas de aprendizaje.
fuente
virtualenv --python=/usr/local/bin/python3 <VIRTUAL ENV NAME>
esto agregará la ruta python3 para su entorno virtual.fuente
Funciono para mi
fuente
Para aquellos que tienen problemas al trabajar con Anaconda3 (Python 3).
Podrías usar
Para activar el entorno (Linux, MacOS)
Para ventanas
fuente
Intenté todo lo anterior, todavía no funcionó. Entonces, como fuerza bruta, simplemente reinstalé la anaconda, reinstalé el virtualenv ... y funcionó.
fuente
Quería mantener Python 2.7.5 como versión predeterminada en Centos 7, pero tengo Python 3.6.1 en un entorno virtual que se ejecuta junto con otros entornos virtuales en Python 2.x
Encontré el siguiente enlace, la mejor solución para la versión más reciente 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
fuente
Los siguientes comandos simples pueden crear un entorno virtual con la versión 3.5
si quieres la versión virtual env como 3.6
fuente
Para aquellos de ustedes que están usando pipenv y desean instalar una versión específica:
fuente
Obtuve el mismo error debido a que es un conflicto con la instalación de miniconda3, así que cuando escribe "which virtualenv" y si ha instalado miniconda y apunta a esa instalación, puede eliminarlo (si me gusta y no se ha movido todavía) o cambie la variable de entorno para que apunte a la instalación que desea.
fuente
En la línea de comandos de Windows, lo siguiente funcionó para mí. Primero averigüe dónde se encuentran sus ejecutables de Python:
Esto generará las rutas a los diferentes python.exe en su sistema. Aquí estaban los míos:
Entonces, para Python3, esto se ubicó en la primera ruta para mí, así que hice un 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 a mi ejecutable Python3, nombrando mi entorno virtual 'venv':
A continuación, active el entorno virtual:
Finalmente, instale las dependencias para este entorno virtual:
Este require.txt podría rellenarse 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, puede generar automáticamente las dependencias ejecutando lo siguiente (cd en la carpeta de la aplicación en el entorno donde está funcionando):
Luego, una vez que tenga los requisitos.txt que haya 'congelado', puede instalar los requisitos en otra máquina o en un entorno limpio con lo siguiente (después del CD en la carpeta de la aplicación):
Para ver su versión de Python en el entorno virtual, ejecute:
Entonces voila ... tienes tu Python3 ejecutándose en tu entorno virtual. Salida para mi:
fuente