web-dev-qa-db-fra.com

pip affiche l'erreur 'lsb_release -a' a renvoyé un état de sortie non nul 1

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

7
Codieroot

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: 

  • Ouvrez /usr/bin/lsb_release (assurez-vous d’utiliser Sudo ou d’ouvrir en tant que root!)
  • Editez la première ligne pour être #! /usr/bin/python2.7
  • Sauvegarder le fichier

maintenant vous pouvez utiliser pip à nouveau et tout devrait bien se passer.

21
Nick Chapman

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.

3
Tomislav Gracin

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

2
Steven Kalt

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
0
rcasero

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
0
hobs

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
0
raratiru