在 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: ''
我在两个不同的互联网连接上测试了其中一台机器,结果相同。
为什么它不起作用?
答案1
从这个 speedtest-cli请求请求,我发现速度测试网站已经改变了他们的 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 中都通用。)
答案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 安装的站点包圆周率和根(须藤)。这个命令很好:
$ speedtest-cli --simple
但
$ sudo speedtest-cli --simple
总是崩溃。这是因为有speedtest-cli-2.1.3
用户版本圆周率并speedtest-cli-2.1.2
为根。
由于我在 cron 作业中使用这些命令,因此该命令始终以 root 身份运行并崩溃。为了克服这个问题,我必须明确升级软件包:
$ sudo pip install --upgrade speedtest-cli
也许这也适合其他人。