Testing

speedtest-cli:ValueError:int()的無效文字,基數為10:''

  • November 2, 2021

在 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: ''

我已經在兩個不同的網際網路連接上測試了其中一台機器,結果相同。

為什麼它不起作用?

從這個 speedtest-cli Pull Request中,我收集到 speedtest 站點在他們的 API 給出的響應中改變了一些東西。查看 PR 中的第一次送出,只需要在 speedtest.py 中修改一行即可。

如果您使用的是 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中發布。它對於一個簡單的單行 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。)

引用自:https://unix.stackexchange.com/questions/644442