speedtest-cli:ValueError:int() 的无效文字,基数为 10:''

Ole*_*nge 15 bandwidth testing

在 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: ''
Run Code Online (Sandbox Code Playgroud)

我已经在两个不同的互联网连接上测试了其中一台机器,结果相同。

为什么它不起作用?

mwf*_*ley 21

从这个 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
Run Code Online (Sandbox Code Playgroud)

编辑:最终补丁位于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
Run Code Online (Sandbox Code Playgroud)

(同样,您应该仔细检查 speedtest.py 文件的位置。上述位置似乎在 Ubuntu 中很常见,但不适用于所有版本的 Unix/Linux。)

  • 此补丁发布于 v2.1.3,标记为“9 天前” (3认同)

小智 5

我通过使用这两个命令来工作:

sudo apt install python-pip -y && sudo pip install speedtest-cli
Run Code Online (Sandbox Code Playgroud)