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 설치 사이트 패키지를 난독화했습니다.PI그리고뿌리(스도). 이 명령은 잘 작동합니다.

$ speedtest-cli --simple

하지만

$ sudo speedtest-cli --simple

항상 충돌합니다. speedtest-cli-2.1.3사용자 버전이 있기 때문입니다.PI그리고 speedtest-cli-2.1.2뿌리를 위해.

cron 작업에서 이 명령을 사용하고 있으므로 명령은 항상 루트로 실행되고 충돌이 발생합니다. 이 문제를 극복하기 위해 패키지를 명시적으로 업그레이드해야 했습니다.

$ sudo pip install --upgrade speedtest-cli

아마도 이것은 다른 사람들에게도 효과가 있을 것입니다.

관련 정보