pyvenv no funciona porque asegúrese de que pip no está disponible


88

Actualicé de ubuntu 14.04 a ubuntu 16.04 hace unos días. Cuando trato de crear un entorno virtual usando

pyvenv .venv

o

python3 -m venv .venv

Hay un error:

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: ['/usr/bin/python3.5', '-Im', 'ensurepip', '--upgrade', '--default-pip']

Intenté ejecutar ambos

sudo apt-get install python3-venv

y

sudo apt-get install python3.5-venv

pero no resolvió mi problema.


Mi problema se resuelve en el sistema operativo con información de lanzamiento: ID de distribuidor: LinuxMint Descripción: Linux Mint 18.3 Sylvia Lanzamiento: 18.3
nix

ninguna de las respuestas me lo resolvió. todavía atascado en el mismo error
Shoaib Iqbal

Respuestas:


114

Parece que fue un problema de ubicación. Resuelto ejecutando:

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

encontrado en este hilo Error de configuración regional de Python: configuración de configuración regional no admitida


34
Es una locura, pero es verdad
user1703761

8
Realmente curioso, pero alguien sabe cuál es el motivo?
Juan Antonio

no me funcionó en el sistema operativo con información de distribución: ID de distribuidor: LinuxMint Descripción: Linux Mint 18.3 Sylvia Lanzamiento: 18.3
nix

1
Gracias, ejecutando una configuración de ventana acoplable mínima aquí. Yo nunca se hubiera imaginado.
Antti Haapala

1
@JuanAntonio Parece que Ubuntu (al menos 16.04) es un bistró no Unicode listo para usar , como se menciona en este número: tickets.puppetlabs.com/browse/IMAGES-498 Supongo que deberíamos agregar configuraciones regionales a nuestro servidor de arranque .. .
Andreas Bergström

106

intente instalar python3.6-venv:

sudo apt-get install python3.6-venv

Gracias por la solucion Funcionó en 16.04 (dado que python3.6 ya estaba instalado, por supuesto). Lo que NO entiendo es que: 1. venv debería hacer que el uso de apt-get sea innecesario. Es parte de la biblioteca estándar. 2. ¿Por qué la versión predeterminada de pip que usa venv no es la última versión?
Lionel Trebuchon

26
... o sudo apt-get install python3.7-venvsi usa Python 3.7
Alleo

12
... o sudo apt-get install python3.8-venvsi usa Python 3.8
cowlinator

3
... o sudo apt-get install python3.9-venvsi usa Python 3.9 (para el futuro)
Andrey Semakin

7
... o sudo apt-get install python3.10-venvsi usa Python 3.10 (en caso de que sobrevivamos a 2020)
Steven667

44

Una de las otras respuestas me lo arregló la última vez, pero con Python 3.7 tuve que hacer:

apt install python3-pip python3-setuptools python3.7-venv

Seguido por

python3.7 -m venv /path/to/venv

22

En el Subsistema de Windows Linux y Ubuntu 18.04, esto se debió a que no me había actualizado recientemente.

Corrí:

sudo apt update
sudo apt upgrade

Luego sudo apt install python3-venvtrabajó.

Tenga en cuenta que también había probado la solución UTF-8 de antemano (la hice parte de mi .bashrc), por lo que podría haber sido un factor contribuyente.


4
No creo que la solución UTF-8 importe. También estoy en WSL Ubuntu 18.04 y los pasos sudo apt updatey sudo apt install python3-venvfueron suficientes.
Theja

1
¡Esta es la única solución que funcionó para mí! Intenté cambiar la configuración regional e instalar una versión más nueva de Python sin éxito
arctic.queenolina

2
esto también funcionó para mí, probé varias otras opciones ... no funcionó,
alumno

brillante, funcionó para mí !!!
Reckoner

9

En mi caso, los siguientes pasos funcionaron:

  • Ubuntu 18.04.4 LTS
 $ sudo apt-get install python3-venv python3.7-venv
 $ python3.7 -m venv [your_path_to_virtual_env_here]

8

En caso de que esto ayude a alguien en el futuro, recibí el mismo error en Ubuntu 18.04. Configurar las configuraciones regionales no funcionó e intentar instalar python3-venvdio el error:

$ sudo apt-get install python3-venv
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 python3-venv : Depends: python3.6-venv (>= 3.6.5-2~) but it is not going to be installed
                Depends: python3 (= 3.6.5-3) but 3.6.7-1~18.04 is to be installed
E: Unable to correct problems, you have held broken packages.

Y parece que el repositorio de apt tenía dos versiones de python:

$ apt list python3 -a
python3/bionic-updates,now 3.6.7-1~18.04 amd64 [installed]
python3/bionic 3.6.5-3 amd64

Intenté instalar, Python3.6.5-3pero apt quería desinstalar todas las dependencias. Pude resolver el problema instalando Python3.7 y creando el venv con eso:

$ sudo apt-get install python3.7 python3.7-venv
$ python3.7 -m venv my_venv

1
Esto funcionó para mí. Hizo sudo apt install python3.8 python3.8-venvy creó el entorno virtual usando python3.8 -m venv venv_name. ¡Gracias!
Amir A. Shabani

5

Encontré este problema en Ubuntu 18.04 para la versión reciente de Python-3.8 . Mi solución fue agregar el PPA de Deadsnakes que proporciona el python3.8-distutilspaquete requerido . El python3.8-venvpaquete ya está en el repositorio. Gracias a esta entrada de blog :

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.8
sudo apt install python3.8-distutils
sudo apt install python3.8-venv

Nota: esta es solo una solución temporal. En un futuro próximo, el python3.8-distutilspaquete requerido probablemente estará disponible en el repositorio predeterminado de Ubuntu.

Editar:

Para Ubuntu 20.04 LTS, el paquete python3-distutils se basa en Python 3.8. Hasta el momento, no hay ningún paquete distutils de Python 3.8 disponible para Ubuntu 18.04 LTS.

Como se mencionó en otros comentarios de este hilo, es distutilsposible que no sea necesario. Fue para mi caso de uso, pero considere esa solución antes de agregar PPA adicionales.


1
sudo apt install python3.8-venvfue el ganador para mí. Toda la otra ayuda que pude encontrar me hizo intentar instalar en su python3-venvlugar.
user1717828

4

Se resolvieron problemas similares en Ubuntu18 cuando encontré esta respuesta . Es similar al que funcionó para @Niko Rikken, accept no necesita realmente ningún nuevo PPA y paquete "python3.8-distutils". Estaba instalando un nuevo entorno python3.8 con venv y ya tenía "python3-venv" instalado y actualizado, así que mi solución fue instalar solo "python3.8-venv":

% sudo apt-get install python3.8-venv

Y eso hizo que estas líneas funcionen:

% python3.8 -m venv ~/envs/new_env
% source ~/envs/new_env/bin/activate

3

Tratar : python3.* -m venv myvenv -

Y no olvide reemplazar * con su versión específica de python


2

Tuve el mismo problema: Python env tiene 2 versiones para 2.7 y 3.6.

Todo lo que necesitas hacer es:

  1. Instale la última versión de pip instalando el instalador de pyenv
  2. Asegúrese de seguir los pasos de instalación de pyenv que se encuentran aquí

¡Buena suerte!


2

Si su intención era obtener python3.8 incl. pip y venv en Ubuntu 18.04:

  • sudo apt install python3.8 python3.8-venv python3-pip # no hay paquete python3.8-pip
  • python3.8 -m venv venv
  • source venv/bin/activate
  • python --version # -> Python 3.8.0
  • pip --version # -> pip 9.0.1 de /home/user/venv/lib/python3.8/site-packages (python 3.8)

2

Me enfrenté al mismo problema y estoy buscando una solución. Se trata del problema:

asegúrese de quepip esté deshabilitado en Debian / Ubuntu para el sistema python.

Y esta mi solución:

python3 -m venv myvenv --without-pip --system-site-packages

Tenga en cuenta que un entorno de Python sin pippodría no ser tan útil.
ankostis

1

Tuve el mismo problema para un proyecto existente al ejecutarlo python3 -m venv venv. Acababa de actualizar mis versiones de Ubuntu y Python. Después de eliminar la venvcarpeta ya existente , se solucionó el problema. (También probé la solución UTF-8 ).


1

Mi problema estaba relacionado con los permisos y la propiedad. Inicié sesión con un usuario diferente como propietario del directorio actual, lo que provocó este error. Después de revisar y corregir todos los permisos, pude instalar venv regularl


Este era mi problema exactamente. Cuando cambié al directorio de inicio de los usuarios actuales, el comando funcionó bien. Esto debe ser un error en el que se supone que python3-venv no está instalado cuando en realidad tiene un problema de permisos.
Cosmicnet

1

Pruebe los siguientes comandos:

sudo apt install python-virtualenv
virtualenv --python=python3.6 myenv

Estos comandos pueden funcionar para usted.

Si recibe algún error como E: Unable to locate package python3-venv Entonces intente los siguientes comandos:

sudo apt install python3.6-venv

0

Todas estas sugerencias no me ayudaron.

$ apt list python3 -a
python3/now 3.6.7-1~18.04 amd64 [installed,local]
python3/bionic 3.6.5-3 amd64

Así que lo hice: sudo apt-get install python3/bionic

Ahora tengo python 3.6.5 y apt-list mostró una lista mejor: $ apt list python3 -a python3 / bionic 3.6.5-3 amd64

Con sudo apt-get install python3-venv/bionicpude instalar pythno3-venv y todo funcionó.


Estoy usando ubuntu alrededor de 5 años activamente pero nunca había visto esa sintaxis "python3 / bionic": O tu respuesta resolvió mi problema gracias.
kodmanyagha

Me alegro de que funcione, tampoco conocía esa sintaxis, simplemente lo intenté porque "apt list" mostraba los paquetes de esa manera ;-) Si esa respuesta te ayudó, puedes presionar el botón "up".
Stefan

Si puede utilizar nombres de paquetes no estándar, significa que ha configurado fuentes de paquetes no estándar. apt-cache policy python3/bionicpodría ayudarlo a averiguar de dónde proviene este paquete. No es de Ubuntu.
tripleee

0

En mi caso, la ejecución sudo apt-get install python3.8-venvtiene éxito pero muestra el mismo error al ejecutarpython3 -m venv .venv .

Finalmente, este comando funciona sin cambiar la configuración regional.

python3.8 -c 'import venv; venv.create(".venv", with_pip=True)'


0

Esto funcionó para mí ... En primer lugar, corrí

sudo apt-get update

Entonces

sudo apt-get install -y python3-venv zip


-1
sudo apt-get update 

Trabajó para mi.

Editar: Me encantaría saber cuál fue exactamente el problema, pero no lo sé. Intenté ejecutar comandos según lo descrito por el interrogador y estaba dando un error, luego actualicé y funcionó. :-RE


3
Explique por qué su respuesta resuelve la pregunta.
RyanNerd

1
Ejecutar comandos y actualizar el árbol de paquetes no constituye una respuesta, por favor desarrolle
Andres Felipe

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.