GNU/Linux >> Linux の 問題 >  >> Ubuntu

Lsb_release –文字列をフロートに変換できませんでした:「8.04Lts」?

lsb_releaseに依存するすべて コマンドが私のコンピューターで機能していません。

例:

pip install numpy

subprocess.CalledProcessError(code、cmd、stdout、stderr)subprocess.CalledProcessErrorを発生させます:コマンド「lsb_release-a」がゼロ以外の終了ステータス1を返しました

そして実際、lsb_release -a エラーを生成します

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'

私はPythonで'8.04 LTS'を知っています floatに変換することはできません 、しかしなぜこれが起こっているのですか。

両方のlsb_releaseを再インストールしようとしました およびpython-pip しかし、これで問題が解決するわけではありません。

私はUbuntu 16.04 LTSを使用しています 。
何か助けがありますか?

承認された回答:

VMの1つで同じエラーが発生し、他の2つとハイパーバイザーは問題ありませんでした。同じリリース(16.04.3)であり、原因の手がかりではありません。既知のバグです。

ここで少し安心しました

ファイル/usr/share/pyshared/lsb_release.pyを変更します 41行目:

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

宛先:

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

私の問題を修正しました。 UbuntuバグランチパッドでSHIINAHideaki(shiina)への完全なクレジット。ここに再投稿します。


Ubuntu
  1. ファイルがまだ存在しない場合にのみファイルに行を追加する

  2. Unix の行末を Windows に変換する

  3. sed:見つかった場合は行を置き換えるか、見つからない場合はファイルの最後に追加する方法は?

  1. 文字列(ファイルではなく)をOpensslに渡す方法は?

  2. Pip3依存関係がありませんか?

  3. コマンドラインからExcelファイルをCalcファイルに変換する方法は?

  1. Ubuntu 16.04で失敗したバックアップの復元?

  2. 各行の先頭にプレフィックス文字列を追加します

  3. Bash で、ファイルの各行の後に文字列を追加するにはどうすればよいですか?