python3 mac force crear change activate python python-3.x virtualenv

mac - Usando Python 3 en virtualenv



virtualenv python python3 (19)

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 (fabrique 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.

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


En Mac tuve que hacer lo siguiente para que funcionara.

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


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.


He probado pyenv y es muy útil para cambiar las versiones de python (global, local en la 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.


Instalar los requisitos previos.

sudo apt-get install python3 python3-pip virtualenvwrapper

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

mkvirtualenv -p /usr/bin/python3 <venv-name>

Establecer en el entorno virtual.

workon <venv-name>

Instale otros requisitos usando el administrador de paquetes pip .

pip install -r requirements.txt pip install <package_name>

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 <venv-name>

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


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$


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

pipenv install --python 3.6


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


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 -p

parser.add_option( ''-p'', ''--python'', dest=''python'', metavar=''PYTHON_EXE'', help=''The Python interpreter to use, e.g., --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)


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 comments correctamente, pyvenv está en deprecated partir de Python 3.6 y la nueva forma es:

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


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 ,

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:/> <venv>/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 pitón

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.

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


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 a otros entornos virtuales en python 2.x

Encontré el enlace a continuación la mejor solución para la versión más nueva 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)

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.


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.


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

$ python3 -m venv .env


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 here . El problema se solucionó ejecutando:

pip install --upgrade virtualenv


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


Funciono para mi

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


virtualenv --python=/usr/bin/python3 <name of env>

trabajó para mi.