pyspeedtest找不到测试服务器

时间:2018-06-23 09:39:13

标签: python

我正在尝试使用pyspeedtest来获取连接的上载/下载速度,但我不断收到以下无法解决的错误:

import pyspeedtest
st = pyspeedtest.SpeedTest()
st.download()

Exception: Cannot find a test server

任何建议/见解都将受到欢迎!

2 个答案:

答案 0 :(得分:5)

如果您将脚本的v1.2.7中的186行上的pyspeedtest.py文件中的URL从www.speedtest.net更改为c.speedtest.net,则它确实起作用。

编辑:添加了一个如何使其工作的示例

您可以使用vi编辑pyspeedtest.py脚本(位于我的raspberry pi 3上的/usr/local/lib/python2.7/dist-packages/pyspeedtest.py中),例如:

sudo vi /usr/local/lib/python2.7/dist-packages/pyspeedtest.py

转到第186行并更改以下行:

connection = self.connect('www.speedtest.net')

收件人:

connection = self.connect('c.speedtest.net')

然后使用/ usr / local / bin中的包装器运行pyspeedtest:

/usr/local/bin/pyspeedtest
Using server: speedtest.wilkes.net
Ping: 41 ms
Download speed: 46.06 Mbps
Upload speed: 11.58 Mbps

或使用python解释器:

>>> import pyspeedtest
>>> st = pyspeedtest.SpeedTest()
>>> st.ping()
41.70024394989014
>>> st.download()
44821310.72337018
>>> st.upload()
14433296.732646577

答案 1 :(得分:3)

该项目自2016年中以来未更新。最后更新是updated user-agent to prevent SpeedTest block...,如果您浏览了代码,则有[类似这样的注释]:(https://github.com/fopina/pyspeedtest/blob/master/pyspeedtest.py#L188

    # really contribute to speedtest.net OS statistics
    # maybe they won't block us again...

并且有bugs posted to GitHub关于该项目无法正常运行,没有任何回应。

因此,我的猜测是:该项目可能违反SpeedTest.net的服务条款,因此他们将其阻止。作者试图绕开障碍物,他们再次将其阻挡,然后作者放弃了。在随后的两年中,它用作备份的任何其他服务器都将其阻止或关闭(例如,文档中提到的speedtest.serv.pt不再存在)。

a pull request from another user可能会解决它,尽管它似乎未通过CI测试。如果您想自己尝试,可以。

但是,否则,您将无法使用该库,并且任何人都无法帮助您使用它。只是不起作用。您将必须找到另一种方法来做同样的事情。