web-dev-qa-db-fra.com

lsb_release - impossible de convertir la chaîne en float: '8.04 LTS'

Tout ce qui dépend de la commande lsb_release ne fonctionne pas sur mon ordinateur.

exemple:

pip install numpy

raise subprocess.CalledProcessError (code, cmd, stdout, stderr) subprocess.CalledProcessError: La commande 'lsb_release -a' a renvoyé un état de sortie non nul 1

Et en fait, lsb_release -a génère une erreur

File "/usr/bin/lsb_release", line 95, in <module>
    main()
  File "/usr/bin/lsb_release", line 59, in main
    distinfo = lsb_release.get_distro_information()
  File "/usr/lib/python3/dist-packages/lsb_release.py", line 383, in get_distro_information
    distinfo = guess_debian_release()
  File "/usr/lib/python3/dist-packages/lsb_release.py", line 281, in guess_debian_release
    get_distro_info(distinfo['ID'])
  File "/usr/lib/python3/dist-packages/lsb_release.py", line 41, in get_distro_info
    RELEASES_ORDER.sort(key=lambda n: float(n[0]))
  File "/usr/lib/python3/dist-packages/lsb_release.py", line 41, in <lambda>
    RELEASES_ORDER.sort(key=lambda n: float(n[0]))
ValueError: could not convert string to float: '8.04 LTS'

Je sais que dans python '8.04 LTS' ne peut pas être converti en float, mais pourquoi cela se produit-il.

J'ai essayé de réinstaller lsb_release et python-pip mais cela ne résout pas le problème.

Je suis sur Ubuntu 16.04 LTS. de l'aide ?

1
Ghilas BELHADJ

J'ai eu la même erreur sur l'un de mes ordinateurs virtuels, les 2 autres et l'hyperviseur étaient bien. Même version (16.04.3), pas la moindre idée de sa cause. C'est un bug connu.

J'ai eu du soulagement ici

Modifiez le fichier /usr/share/pyshared/lsb_release.py ligne 41 à partir de:

RELEASES_ORDER.sort(key=lambda n: float(n[0])) 

à:

RELEASES_ORDER.sort(key=lambda n: float(n[0].split()[0]))

Correction du problème pour moi. Crédit complet à SHIINA Hideaki (shiina) au tableau de bord des bogues Ubuntu. Je ne fais que republier ici.

2
Ernesto Barechesto