J'essaye d'installer des paquets en utilisant pip et c'est une erreur de projection.
Commande que j'ai utilisée,
Sudo pip install Selenium
L'erreur qu'il montre,
Exception:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "/usr/local/lib/python2.7/dist-packages/pip/commands/install.py", line 272, in run
with self._build_session(options) as session:
File "/usr/local/lib/python2.7/dist-packages/pip/basecommand.py", line 72, in _build_session
insecure_hosts=options.trusted_hosts,
File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 329, in __init__
self.headers["User-Agent"] = user_agent()
File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 93, in user_agent
from pip._vendor import distro
File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py", line 1050, in <module>
_distro = LinuxDistribution()
File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py", line 594, in __init__
if include_lsb else {}
File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py", line 933, in _get_lsb_release_info
raise subprocess.CalledProcessError(code, cmd, stdout)
CalledProcessError: Command 'lsb_release -a' returned non-zero exit status 1
Traceback (most recent call last):
File "/usr/local/bin/pip", line 11, in <module>
sys.exit(main())
File "/usr/local/lib/python2.7/dist-packages/pip/__init__.py", line 233, in main
return command.main(cmd_args)
File "/usr/local/lib/python2.7/dist-packages/pip/basecommand.py", line 251, in main
timeout=min(5, options.timeout)) as session:
File "/usr/local/lib/python2.7/dist-packages/pip/basecommand.py", line 72, in _build_session
insecure_hosts=options.trusted_hosts,
File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 329, in __init__
self.headers["User-Agent"] = user_agent()
File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 93, in user_agent
from pip._vendor import distro
File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py", line 1050, in <module>
_distro = LinuxDistribution()
File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py", line 594, in __init__
if include_lsb else {}
File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py", line 933, in _get_lsb_release_info
raise subprocess.CalledProcessError(code, cmd, stdout)
subprocess.CalledProcessError: Command 'lsb_release -a' returned non-zero exit status 1
J'ai cherché partout, mais il n'y a pas de solution à ce problème. Il a commencé à se comporter comme ça récemment. En outre, Software Updater a cessé de fonctionner. Je ne sais pas si c'est lié à ça. J'utilise Ubuntu 14.04 LTS et python 2.X
Ahhh la question lsb_release
classique. J'ai combattu ce problème plusieurs fois. Le problème est que votre implémentation Python par défaut tente d'utiliser Python 3, mais lsb_release
requiert Python 2. Pour résoudre ce problème, procédez comme suit:
/usr/bin/lsb_release
(assurez-vous d’utiliser Sudo ou d’ouvrir en tant que root!)#! /usr/bin/python2.7
maintenant vous pouvez utiliser pip à nouveau et tout devrait bien se passer.
J'ai eu le même problème sur un compte d'hébergement partagé qui est très limitant (j'installais python et pip pour mon utilisateur uniquement). Leur lsb_release -a
renvoie quelque chose de non standard et je ne peux pas le changer . J'ai résolu le problème en modifiant distro.py
(dans votre cas: /usr/local/lib/python2.7/dist-packages/pip/_vendor/distro.py
) et en modifiant le paramètre par défaut de la méthode __init__
. Dans ma version, il se trouvait à la ligne. 545 . Extrait:
def __init__(self,
include_lsb=True,
os_release_file='',
distro_release_file=''):
Il suffit de changer include_lsb=True
en include_lsb=False
.
J'ai pu corriger ce message d'erreur avec unset _PYTHON_SYSCONFIGDATA_NAME
. Ceci empêchait lsb_release
d'essayer d'importer $_PYTHON_SYSCONFIGDATA_NAME
. Après cela, pip install
a fonctionné à nouveau. Ce correctif s'applique si vous exécutez lsb_release -a
et obtenez ModuleNotFoundError: No module named '_sysconfigdata_x86_64_conda_cos6_linux_gnu'
.
Je pense que c'est un problème avec les anciens fichiers python compilés qui entrent en conflit avec une mise à niveau Ubuntu.
Pour moi, la solution consistait à supprimer les fichiers .pyc suivants
Sudo rm /usr/lib/python2.7/dist-packages/*.pyc
Je devais désinstaller python3-dev et python2.7-dev en raison d'un conflit entre python3.4 installé par miniconda et mon python3.6 compilé à partir de la source sur Raspberry Pi (Raspbian Stretch avec Arm71), puis réinstaller pip et pip3:
Sudo apt-get -y remove python2.7-dev python3-dev
wget https://bootstrap.pypa.io/get-pip.py
Sudo python get-pip.py
Sudo python3 get-pip.py
Après installer python à partir de la source sur Debian-9 (j’ai cependant installé ces paquets ), j’ai eu le même problème. Voici comment je l'ai résolu:
/usr/local/bin/python3.x -m venv <my_venv>
. <my_venv>/bin/activate
easy_install pip
easy_install setuptools
easy_install wheel
pip install -U setuptools wheel pip