assurez-vous que le pip est désactivé dans Debian / Ubuntu pour le système python


10

J'essaie de créer un environnement virtuel pour le développement de mon application Django. Les commandos que j'utilise:

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

Comme vous pouvez le voir, j'essaie de créer un myvenv, qui ne peut pas être créé en raison de l'absence de python3-venv. J'ai déjà installé cela, mais le pip est manquant. Après recherche, il semble que le système (Ubuntu 16.04) décourage l'utilisation du paquet. Quelqu'un pourrait-il m'aider à contourner ce problème?


La commande réelle qui échoue est /var/www/djangogirls/myvenv/bin/python3 -Im ensurepip ..., qui peut échouer pour des raisons entièrement différentes.
muru

Réponses:


14

Il y a un rapport de bogue connexe ici

assurez-vous que le composant pip est manquant / désactivé sur Ubuntu

La solution consiste à créer un environnement virtuel sans pip

python3 -m venv myvenv --without-pip

Le composant assurepip n'est pas appelé et un nouvel environnement est créé dans ce cas.

Cependant, le pip manquant dans l'environnement virtuel peut être un problème.

Une solution consiste à installer le package système pip3 et à utiliser directement le module système pip dans votre environnement virtuel.

L'environnement virtuel doit avoir accès aux packages du site système pour pouvoir utiliser le module pip système.

  1. installer le package pip python3 système

    sudo apt-get install python3-pip
  2. créer un environnement virtuel sans pip et avec accès aux packages de site système

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

Vous pouvez maintenant utiliser le module pip système pour installer des packages python dans votre environnement virtuel.

Au lieu de pip install Djangovous devez utiliser explicite

myvenv/bin/python3 -m pip install Django

ou vous pouvez d'abord activer votre environnement virtuel

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

python3 -m pip --version peut être utile pour voir quel environnement python est utilisé.

Basé sur la solution trouvée ici , mais n'utilisez pas proposé python get-pip.pydans un environnement virtuel, car il volera la pipcommande système


Le bogue Debian pour ce problème est ici: bugs.debian.org/cgi-bin/bugreport.cgi?bug=901601
nnyby

1

Anaconda involucred

Si vous utilisez Anaconda ou Conda, cette solution peut vous aider:

Conda gère python lui-même comme un package , de sorte que la mise à jour de conda python est possible, contrairement à pip, qui ne gère que les packages Python. Conda est disponible dans Anaconda et Miniconda (un téléchargement facile à installer avec seulement Python et conda).

très dérangeant pour moi mais bon, les mains au clavier dans une fenêtre de terminal:

conda update python

Regardez cette photo le résultat , peut-être que cela vous aide, passez une bonne journée!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.