surepip está deshabilitado en Debian / Ubuntu para el sistema python

10

Estoy tratando de crear un entorno virtual para el desarrollo de mi aplicación Django. El comando que estoy usando:

vagrant@vagrant:/var/www/djangogirls$ python3 -m venv myvenv
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: ['/var/www/djangogirls/myvenv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']


vagrant@vagrant:/var/www/djangogirls$ sudo apt-get install python3-venv
Reading package lists... Done
Building dependency tree       
Reading state information... Done
python3-venv is already the newest version (3.5.1-3).
The following packages were automatically installed and are no longer required:
  javascript-common libjs-jquery libjs-sphinxdoc libjs-underscore python-pbr python-pkg-resources
  python-six python-stevedore python3-virtualenv virtualenv virtualenv-clone
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 108 not upgraded.

vagrant@vagrant:/var/www/djangogirls$ python3 -m ensurepip
ensurepip is disabled in Debian/Ubuntu for the system python.

Python modules for the system python are usually handled by dpkg and apt-get.

    apt-get install python-<module name>

Install the python-pip package to use pip itself.  Using pip together
with the system python might have unexpected results for any system installed
module, so use it on your own risk, or make sure to only use it in virtual
environments.


vagrant@vagrant:/var/www/djangogirls$ rm -r myvenv/ 

vagrant@vagrant:/var/www/djangogirls$ python3 -m venv myvenv
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: ['/var/www/djangogirls/myvenv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']

Como puede ver, estoy tratando de hacer un myvenv, que no se puede crear debido a la falta de python3-venv. Ya he instalado esto, pero falta el pip de seguridad. Después de buscar, parece que el sistema (Ubuntu 16.04) desalienta el uso del paquete. ¿Podría alguien ayudarme a solucionar este problema?

Anna Jeanine
fuente
El comando real que está fallando es /var/www/djangogirls/myvenv/bin/python3 -Im ensurepip ..., que puede fallar por razones completamente diferentes.
muru

Respuestas:

14

Hay un informe de error relacionado aquí

Falta el componenteipsepip / está deshabilitado en Ubuntu

La forma de evitarlo es crear un entorno virtual sin pip

python3 -m venv myvenv --without-pip

No se llama al componente surepip y se crea un nuevo entorno en este caso.

Sin embargo, la falta de pip en el entorno virtual puede ser un problema.

Una solución es instalar el paquete pip3 del sistema y usar el módulo pip del sistema dentro de su entorno virtual directamente.

El entorno virtual debe tener acceso a los paquetes del sitio del sistema para poder utilizar el módulo pip del sistema.

  1. instalar el paquete pip python3 del sistema

    sudo apt-get install python3-pip
  2. cree un entorno virtual sin pip y con acceso a los paquetes del sitio del sistema

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

Puede usar el módulo pip del sistema para instalar paquetes de python en su entorno virtual ahora.

En lugar de pip install Djangotener que usar explícito

myvenv/bin/python3 -m pip install Django

o puede activar su entorno virtual primero

source myvenv/bin/activate
python3 -m pip install Django

python3 -m pip --version mayo es útil para ver qué entorno de Python se utiliza.

Basado en la solución encontrada aquí , pero no use la propuesta python get-pip.pyen un entorno virtual, ya que robará el pipcomando del sistema

mojeto
fuente
El error de Debian para este problema está aquí: bugs.debian.org/cgi-bin/bugreport.cgi?bug=901601
nnyby
1

Anaconda involucrada

Si está utilizando Anaconda o Conda, esta solución puede ayudarlo a:

Conda administra Python en sí mismo como un paquete , de modo que es posible actualizar Python conda, en contraste con pip, que solo administra paquetes Python. Conda está disponible en Anaconda y Miniconda (una descarga fácil de instalar con solo Python y conda).

muy inquietante para mí pero bueno, manos al teclado en una ventana de terminal:

conda update python

Mira esta imagen, el resultado , tal vez esto te ayude, ¡que tengas un buen día!

Jimmy Olano
fuente