Режим develop
файла setup.py свяжет путь вашего локального кода с PYTHONPATH
.
Если вы устанавливаете локальный пакет python setup.py develop
, который изменит систему PYTHONPATH
и сведет вас с ума, если вы удалите его из переменных окружения.
Я нашел правильный способ удалить их и восстановить настройки по умолчанию PYTHONPATH
из здесь . Вам нужно использовать опцию --uninstall
или -u
для разработки, т.е.:
python setup.py develop --uninstall
PS :Если вы не можете удалить пакет в первый раз, попробуйте переустановить его и удалить снова.
Использование любого awk в любой оболочке на каждом компьютере Unix и использование имен данных в вашем коде только один раз, когда вам нужно их распечатать, чтобы вы могли тривиально добавлять дополнительные prt()
операторы, изменять их, тестировать их и/ или переупорядочить их для этого или любых других подобных -форматированных данных без внесения каких-либо других изменений в код:
$ speedtest | awk '
{
gsub(/[:()]/,"")
tag2val[tolower($1)] = $2 " " $3
tag2val[tolower($6)] = $4 " " $5
}
END {
prt("Download Speed")
prt("Upload Speed")
prt("Latency")
prt("Jitter")
}
function prt(name, tag) {
tag = tolower(name)
sub(/.*/,"",tag)
print name ":" OFS tag2val[tag]
}
'
Download Speed: 85.75 Mbps
Upload Speed: 5.68 Mbps
Latency: 93.85 ms
Jitter: 222.66 ms
Версии этого инструмента (speedtest-cli
), к которым у меня есть доступ (2.1.2 в Ubuntu и 2.1.3 в OpenBSD ), не дают точного выходного формата, который вы показываете. Однако он обеспечивает вывод как в формате CSV, так и в формате JSON, если заданы правильные параметры командной строки.
Это означает, что вы можете легко получить необходимые данные, например, из. вывод в формате JSON примерно так:
speedtest-cli --json |
jq -r '[
["Download (Mbps):",.download/1e6],
["Upload (Mbps):",.upload/1e6],
["Latency (ms):",.server.latency]
] | map(@tsv)[]'
Это выбирает значение ключа .download
вместе с .upload
и значением .latency
из подобъекта .server
-. Значения скорости загрузки и выгрузки указаны в битах в секунду, поэтому их необходимо соответствующим образом масштабировать. Значения выводятся с заголовками в виде табуляции -с разделителями.
Пример вывода:
Download (Mbps): 88.32191644148061
Upload (Mbps): 93.34628783248138
Latency (ms): 10.756
Вариант этого инструмента, который у меня есть, похоже, не выводит «джиттер» ни в одном из режимов вывода.
Для справки: полный вывод JSON может выглядеть так:
{
"download": 88321916.4414806,
"upload": 93346287.83248138,
"ping": 10.756,
"server": {
"url": "http://somehost.example.com:8080/speedtest/upload.php",
"lat": "XXX",
"lon": "YYY",
"name": "Thetown",
"country": "Thecountry",
"cc": "ZZ",
"sponsor": "Company",
"id": "XYZ",
"host": "somehost.example.com:8080",
"d": 156.5033515123062,
"latency": 10.756
},
"timestamp": "2021-12-04T20:12:20.816506Z",
"bytes_sent": 119447552,
"bytes_received": 110800036,
"share": null,
"client": {
"ip": "my-public-ip-number",
"lat": "XX",
"lon": "YY",
"isp": "provider",
"isprating": "3.7",
"rating": "0",
"ispdlavg": "0",
"ispulavg": "0",
"loggedin": "0",
"country": "ZZ"
}
}
Вы также можете проанализировать вывод CSV из speedtest-cli
с помощью инструментов csvkit
:
{ speedtest-cli --csv-header; speedtest-cli --csv; } |
csvcut -c Download,Upload,Ping | csvlook
Сначала выводятся заголовки CSV из speedtest-cli
(, что по какой-то причине необходимо сделать отдельно ). Затем он запускает тест скорости, извлекает столбцы Download
, Upload
и Ping
и переформатирует полученный CSV в форматированную таблицу Markdown -.
Результат может выглядеть примерно так:
| Download | Upload | Ping |
| --------------- | --------------- | ------ |
| 88,649,466.475… | 93,164,137.292… | 10.193 |
Что выглядит так при рендеринге :| Скачать | Загрузить | Пинг | | ---------------| ---------------| ------| | 88 649 466,475… | 93 164 137,292… | 10.193 |
Обратите внимание, что числа в первых двух столбцах указаны в битах/с.
`awk '{if ($1 ~ /Download/){print "Download speed: " $2 " mbps"}else{if($1 ~ /Upload/){print "Upload Speed: "$2 " mbps"}else{if($NF ~ /jitter/ && $1 ~ /Latency/){gsub(/\(/`,"",$(NF-2));print "Latency :" $2 " ms\n jitter: " $(NF-2)" ms"}}}}' filename
Latency :93.85 ms
jitter: 222.66 ms
Download speed: 85.75 mbps
Upload Speed: 5.68 mbps