3台のコンピュータから以下を取得します。
$ speedtest-cli
Retrieving speedtest.net configuration...
Traceback (most recent call last):
File "/usr/bin/speedtest-cli", line 11, in <module>
load_entry_point('speedtest-cli==2.1.2', 'console_scripts', 'speedtest-cli')()
File "/usr/lib/python3/dist-packages/speedtest.py", line 1986, in main
shell()
File "/usr/lib/python3/dist-packages/speedtest.py", line 1872, in shell
speedtest = Speedtest(
File "/usr/lib/python3/dist-packages/speedtest.py", line 1091, in __init__
self.get_config()
File "/usr/lib/python3/dist-packages/speedtest.py", line 1173, in get_config
ignore_servers = list(
ValueError: invalid literal for int() with base 10: ''
2つの異なるインターネット接続でコンピュータの1つをテストしましたが、同じ結果が出ました。
なぜ動作しないのですか?
答え1
このspeedtest-cliからフルリクエスト、スピードテストウェブサイトのAPIレスポンスで何かが変更されたことがわかりました。 PRの最初のコミットを見ると、speedtest.pyで1行だけ変更できます。
Ubuntuなどのシステムを使用していて、ファイルが出力に表示されている場所にある場合は、次のように問題を修正できます。
## Backup original code
sudo gzip -k9 /usr/lib/python3/dist-packages/speedtest.py
## Make the line substitution
sed -i "s/^ map(int, server_config\['ignoreids'\].split(','))$/ map(int, (server_config['ignoreids'].split(',') if len(server_config['ignoreids']) else []) )/" /usr/lib/python3/dist-packages/speedtest.py
編集:最終パッチは次の場所にあります。https://github.com/sivel/speedtest-cli/commit/cadc68、そして に掲示されるv2.1.3。単純な1行のsedコマンドは複雑すぎますが、手動で直接適用できます。または、そのバージョンのspeedtest.pyファイルを直接ダウンロードしてみることもできます。
sudo gzip -k9 /usr/lib/python3/dist-packages/speedtest.py
sudo wget https://raw.githubusercontent.com/sivel/speedtest-cli/v2.1.3/speedtest.py \
-O /usr/lib/python3/dist-packages/speedtest.py
(もう一度speedtest.pyファイルの場所をもう一度確認する必要があります。上記の場所はUbuntuで一般的に見える場所ですが、Unix / Linuxのすべてのバージョンで表示されるわけではありません。)
答え2
次の2つのコマンドを使用して動作させました。
sudo apt install python-pip -y && sudo pip install speedtest-cli
答え3
この問題は次の方法で解決できます。
sudo gzip -k9 /usr/lib/python3/dist-packages/speedtest.py
sudo wget https://raw.githubusercontent.com/sivel/speedtest-cli/v2.1.3/speedtest.py -O /usr/lib/python3/dist-packages/speedtest.py
答え4
私はこれをRaspbian(Raspberry Pi)で使用しており、私の場合は、ユーザーのPythonインストールサイトパッケージを難読化しました。PIそして根(スド)。このコマンドはうまく動作します。
$ speedtest-cli --simple
しかし、
$ sudo speedtest-cli --simple
常にクラッシュします。speedtest-cli-2.1.3
ユーザーバージョンがあるからです。PIそしてspeedtest-cli-2.1.2
根のために。
cronジョブはこのコマンドを使用しているため、コマンドは常にrootとして実行され、競合が発生します。この問題を克服するために、パッケージを明示的にアップグレードする必要がありました。
$ sudo pip install --upgrade speedtest-cli
おそらくこれは他の人にも効果があるでしょう。