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

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

在 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

也许这也适合其他人。

相关内容