Virtualenv: Error al crear virtualenv con python3.6

Creado en 22 jun. 2017  ·  24Comentarios  ·  Fuente: pypa/virtualenv

Hoy temprano instalé python3.6 en mi máquina Debian. Python3.6 se puso a disposición en la distribución buster. Cuando intento crear un virtualenv con python3.6.

python3.6 -m venv venv

da el siguiente error.

El entorno virtual no se creó correctamente debido a que verifypip no está disponible. En los sistemas Debian / Ubuntu, debe instalar el paquete python3-venv usando el siguiente comando.

apt-get install python3-venv

Es posible que deba usar sudo con ese comando. Después de instalar python3-venv
paquete, vuelva a crear su entorno virtual.

Comando fallido: ['/home/float/test/t/bin/python3.6', '-Im', 'securepip', '--upgrade', '--default-pip']

Tengo python3-venv (3.5.3-1) instalado. ¿Por qué recibo este error? Si ejecuto el comando

py3 -Im ensurepip --upgrade --default-pip

dice

/usr/bin/python3.6: No module named ensurepip

No tengo problemas para crear virtualenvs usando la versión predeterminada de python3 (3.5.3).

Además, noté que puedo crear un virtualenv de la siguiente manera:

virtualenv -p python3.6 venv

Comentario más útil

El problema del póster original se debe a que no tiene instalado el paquete 'python3.6-venv', que se puede verificar usando Docker si no tiene acceso a un Buster Debian:

$ docker run --rm -it debian:buster /bin/bash
$ apt update
...
$ apt install python3.5 python3.6 python3.5-venv
...
$ python3.6 -m venv venv
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/venv/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']
$ rm -rf venv
$ apt install python3.6-venv
...
$ python3.6 -m venv venv
... success

Instale 'python3.6-venv' y debería funcionar.

Todos 24 comentarios

Hola,

El módulo propio virtualenv y python3 venv son 2 proyectos / cosas totalmente diferentes.

venv está haciendo lo mismo que virtualenv pero está directamente integrado en python3.
virtualenv es el proyecto histórico básicamente (y normalmente no debería usarse con python3 mientras haya venv).

Según su entrada, diría que python3-venv puede reinstalar ( sudo apt-get reinstall python-venv o algo similar) de su lado. Pero puedo equivocarme. De todos modos, esto parece todo relacionado con Debian, estoy bastante seguro.

Entonces, ¿puedes cerrar el problema? (No soy mantenedor aquí)
Saludos.

La reinstalación no funcionó. Cerraré este tema ahora. Actualizaré si tengo más información.

@animeshb , no tienes más salida después

Failing command: ['/home/float/test/t/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']

?

float<strong i="5">@animesh</strong>:~/test$ python3.6 -m venv venv

Nada después de esa línea.

The virtual environment was not created successfully because ensurepip is not available. On Debian/Ubuntu systems, you need to install the python3-venv package using the following command.

apt-get install python3-venv

You may need to use sudo with that command. After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/home/float/test/t/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']

En la carpeta venv/bin , no tiene comando de activación.

float<strong i="13">@animesh</strong>:~/test$ ls venv/bin/
python  python3  python3.6

Solo puedo redirigirlo a una de las muchas páginas que coinciden con este error (es un problema conocido con los sistemas debian / ubuntu):

https://bugs.launchpad.net/ubuntu/+source/python3.4/+bug/1290847

¿qué pasa con sudo apt-get install python3-pip ?

El problema del póster original se debe a que no tiene instalado el paquete 'python3.6-venv', que se puede verificar usando Docker si no tiene acceso a un Buster Debian:

$ docker run --rm -it debian:buster /bin/bash
$ apt update
...
$ apt install python3.5 python3.6 python3.5-venv
...
$ python3.6 -m venv venv
The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/venv/bin/python3.6', '-Im', 'ensurepip', '--upgrade', '--default-pip']
$ rm -rf venv
$ apt install python3.6-venv
...
$ python3.6 -m venv venv
... success

Instale 'python3.6-venv' y debería funcionar.

Vaya, no se me ocurrió en absoluto que habría una versión específica del paquete -venv. Instalar esto hizo el truco.

@gst y @eukaryote Muchas gracias por dedicar su tiempo a este tema.

La solución de @eukaryote funcionó para mí. ¡Gracias por publicar esto!

La configuración regional mal configurada también puede inducir este problema, ya que esta respuesta resuelve mi problema que produce el mismo mensaje de error que OP.

Intente ejecutar:

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

solo un punto de datos, pero jugando con un nuevo virtualbox ubuntu bionic, descubrí que apt install python3.6-venv todavía me dejaba con un python3.6 -m venv roto, pero ejecutar apt install python3-venv solucionó.

Estoy en Debian testing / buster y tengo el mismo problema, mientras que tanto python3.6-venv como python3-venv están instalados.

El error de Debian para esto está aquí por cierto: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=901601

Nikola
Allí escriben que está reparado en la última versión. Así que hice
apt purgar python3.6-venv
dpkg -i --force-depends-version python3.6-venv_3.6.6 ~ rc1-3_amd64.deb # de snapshot.debian.org
Y funciona para mi.
Probablemente necesitaré arreglarlo más tarde: apt --fix-broken install

Solo dejo un comentario aquí, para los que lleguen después de mí, buscando en Google el mismo problema:

lo mismo se aplica a 3.7 de Python, tienes que instalar python3.7-venv , es decir apt-get install python3.7-venv

Solo para su información, la solución anterior no funciona para Python 3.7. apt install python3.7 python3.7-venv en una imagen de Docker Stock Buster todavía produce un virtualenv roto ("surepip no está disponible"). Sin embargo, después de apt install python3-venv (que instala innecesariamente todo python3.6), puede crear un venv de Python 3.7 que funcione, que incluya un pip adecuado de 3.7, con python3.7 -m venv myvenv . Entonces, el conjunto completo de comandos de trabajo es este:

sudo apt install python3.7 python3-venv python3.7-venv # all three are required
python3.7 -m venv myvenv
. myvenv/bin/activate

(Por cierto, tenga en cuenta que todas las instalaciones de python3.7-venv son un módulo ensurepip sistema ficticio).

estás hablando de venv , que es un proyecto diferente. Este rastreador es para virtualenv.

También me enfrentaba al mismo problema.

[ niraj @ abc ~] $ / python / v3.7.0 / bin / python3 -m venv avd
Error: el comando '[' / home / niraj / avd / bin / python3 ',' -Im ',' asegurapip ',' --upgrade ',' --default-pip ']' devolvió un estado de salida 1 distinto de cero.

Después de agregar libffi3.3 en mi ruta LD_LIBRARY, funciona

setenv LD_LIBRARY_PATH /libffi/v3.3/lib64

Primero lo instalé con sudo apt install python3-venv y tuve el mismo problema y se resolvió haciendo: sudo apt install python3.6-venv

@eukaryote todavía no funcionó. ¿Puede usted ayudar? Estoy en Ubuntu 18.04 LTS

La configuración regional mal configurada también puede inducir este problema, ya que esta respuesta resuelve mi problema que produce el mismo mensaje de error que OP.

Intente ejecutar:

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

Esto me funciona en Ubuntu 16.04.6. Gracias

La configuración regional mal configurada también puede inducir este problema, ya que esta respuesta resuelve mi problema que produce el mismo mensaje de error que OP.

Intente ejecutar:

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

gracias

Vaya, la instalación de la versión específica de venv funcionó para mí. En mi caso, python3.8-venv.

Gracias @jrperin

La instalación de la versión específica también funcionó para mí: python3.8-venv

Si la versión del sistema operativo es 18.04 o 20.04:

sudo apt remove python3.6
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.6
sudo apt install python3.6-venv
sudo apt install python3.6-dev

Software de soporte adicional
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget

¿Fue útil esta página
0 / 5 - 0 calificaciones