GithubHelp home page GithubHelp logo

pauperz / ssrspeedn Goto Github PK

View Code? Open in Web Editor NEW
1.1K 6.0 155.0 55.9 MB

基于SSRSpeed修改,支持同时进行单线程/多线程测速,并可同时进行流媒体解锁状态测试

License: GNU General Public License v3.0

Dockerfile 0.11% Python 95.22% Shell 3.02% Makefile 0.01% Roff 0.34% Batchfile 1.23% HTML 0.06%

ssrspeedn's Introduction

SSRSpeedN

Batch speed measuring tool based on Shadowsocks(R) and V2Ray

赞赏码

SSRSpeedN

要饭人士跪求各位大佬雪中送炭

注意事项

  • 测速及解锁测试仅供参考,不代表实际使用情况,由于网络情况变化、Netflix封锁及ip更换,测速具有时效性

  • 本项目使用 Python 编写,使用前请完成环境安装

  • 首次运行前请执行 开始测速.bat 安装pip及相关依赖,也可使用 pip install -r requirements.txt 命令自行安装

  • logs文件夹用于记录测速日志,包含节点的详细信息及测速订阅,非必要请勿泄露

  • 执行 开始测速.bat 批处理命令即可测速,测速结果保存在 results 文件夹下,不过大佬喜欢用命令行测也可以

  • 因为需要依赖 Python 环境,且本项目仍在测试阶段,可能存在部分 bug ,可到 tg 群组 进行反馈。

  • Netflix 解锁测速结果说明:

Full Native             原生全解锁 
Full Dns                DNS 全解锁
Only original           仅解锁自制剧
None                    未解锁
其中原生解锁和DNS解锁只是解锁方式有区别,实际体验区别不大,在电视端使用时DNS解锁可能会提示使用代理。

特性

本项目在原 SSRSpeed (已跑路) 的基础上,集成了如下特性

  • 支持单线程/多线程同时测速,可以同时反映视频播放/多线程下载等场景的节点速度
  • 支持 fast.com / YOUTUBE 码率等多种测速方式(仅限 Windows)
  • 支持 Netflix 解锁测试,分为 原生全解锁 / DNS全解锁 / 仅解锁自制剧 / 无解锁 四档
  • 支持 流媒体平台 Abema/Bahamut 动画疯/Disney+//HBO max/My tvsuper/YouTube premium 的解锁测试
  • 配置文件中提供了测速模块的控制端,可以自由选择是否测速/测ping/检测流媒体解锁
  • 取消了原版的大红配色,默认为彩虹配色,并增加了新配色 (poor)
  • 无耻地增加了频道tag,可以在 result/export_result.py 中改为自己的tag
  • 增加了节点复用检测功能
  • 增加了实际流量倍率测试功能

相关依赖

Python第三方库 见 requirements.txt

Linux 依赖

支持平台

已测试平台

  1. Windows 10 x64

放过要饭人士,MacOS和Linux属实没钱测/懒得测,期待更多后浪反馈

理论支持平台

支持 Python 及 Shadowsocks, ShadowsocksR, V2Ray 的平台

一定支持平台

支持 SSRSpeedN 的平台

致谢

每日一个测速小技巧

命令行测速(建议大佬使用)

安装第三方库:

pip install -r requirements.txt

测速主程序及附加选项:

python ./main.py
Usage: main.py [options] arg1 arg2...

附加选项:
  --version             输出版本号并退出
  -h, --help            输出帮助信息并退出
  -c GUICONFIG, --config=GUICONFIG
                        通过节点配置文件加载节点信息.
  -u URL, --url=URL     通过节点订阅链接加载节点信息.
  --include             通过节点标识和组名筛选节点.
  --include-remark      通过节点标识筛选节点.
  --include-group       通过组名筛选节点.
  --exclude             通过节点标识和组名排除节点.
  --exclude-group       通过组名排除节点.
  --exclude-remark      通过节点标识排除节点.
  --use-ssr-cs          替换SSR内核 ShadowsocksR-libev --> ShadowsocksR-C# (Only Windows)
  -g GROUP              自定义测速组名.
  -y, --yes             跳过节点信息确认(我嫌那玩意太麻烦设成默认了).
  -C RESULT_COLOR, --color=RESULT_COLOR
                    设定测速结果展示配色.
  -S SORT_METHOD, --sort=SORT_METHOD
                        选择节点排序方式 按速度排序/速度倒序/按延迟排序/延迟倒序
                        [speed,rspeed,ping,rping],默认不排序.
  -i IMPORT_FILE, --import=IMPORT_FILE
                        提供给不会p图的同学,偷偷改结果的json文件后重新输出结果.
  --skip-requirements-check
                        跳过确认.
  --debug               采用debug模式.

使用样例 :

python main.py -c gui-config.json --include 韩国 --include-remark Azure --include-group YoYu
python main.py -u "https://home.yoyu.dev/subscriptionlink" --include 香港 Azure --include-group YoYu --exclude Azure

自定义配置

  • 自定义颜色
    • 在 ssrspeed_config.json 文件下第 35 行,采用速度(MB/s)对应输出颜色 (RGB 256)方式
  • 自定义字体
    • 下载字体文件放入 /resources/fonts/ 文件夹下,修改 ssrspeed_config.json 文件下第 34 行,本项目自带两个字体
  • 修改测速项目
    • 在 ssrspeed_config.json 文件下第 16 行及第 25 行,可以设置是否进行udp类型及Netflix解锁测试,默认允许。在 21-23行可以分别设置是否进行 ping / Google ping 测试,默认允许,若不进行测试,对应项在测速图上显示为0
  • 修改测速方式
    • 在 ssrspeed_config.json 文件下第 24 行,可以设置采用单/多线程测速方式或均速/最高速测速方式,默认为前者

详细使用方法

ssrspeedn's People

Contributors

kagurazakanyaa avatar pauperz avatar roderick-stinson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

ssrspeedn's Issues

检测时报错:violation of protocol

我成功以管理员身份安装所需的python包,但在打开代理、以用户身份执行链接检测时,遇到疑似SSL协议冲突的问题。

这是什么情况?

Requirement already satisfied: pip in c:\users\administrator\appdata\local\programs\python\python311\lib\site-packages (23.1.2)
Requirement already satisfied: six in c:\users\administrator\appdata\local\programs\python\python311\lib\site-packages (from -r D:\SSRSpeedN-1.04\requirements.txt (line 1)) (1.16.0)
Collecting pillow (from -r D:\SSRSpeedN-1.04\requirements.txt (line 2))
Using cached Pillow-9.5.0-cp311-cp311-win_amd64.whl (2.5 MB)
Requirement already satisfied: requests in c:\users\administrator\appdata\local\programs\python\python311\lib\site-packages (from -r D:\SSRSpeedN-1.04\requirements.txt (line 3)) (2.31.0)
Collecting pysocks (from -r D:\SSRSpeedN-1.04\requirements.txt (line 5))
Using cached PySocks-1.7.1-py3-none-any.whl (16 kB)
Collecting flask (from -r D:\SSRSpeedN-1.04\requirements.txt (line 6))
Using cached Flask-2.3.2-py3-none-any.whl (96 kB)
Collecting flask-cors (from -r D:\SSRSpeedN-1.04\requirements.txt (line 7))
Using cached Flask_Cors-3.0.10-py2.py3-none-any.whl (14 kB)
Collecting pyyaml (from -r D:\SSRSpeedN-1.04\requirements.txt (line 8))
Using cached PyYAML-6.0-cp311-cp311-win_amd64.whl (143 kB)
Collecting aiohttp (from -r D:\SSRSpeedN-1.04\requirements.txt (line 9))
Using cached aiohttp-3.8.4-cp311-cp311-win_amd64.whl (317 kB)
Collecting aiohttp_socks (from -r D:\SSRSpeedN-1.04\requirements.txt (line 10))
Using cached aiohttp_socks-0.8.0-py3-none-any.whl (9.4 kB)
Collecting pynat (from -r D:\SSRSpeedN-1.04\requirements.txt (line 11))
Using cached pynat-0.7.0.tar.gz (7.1 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... error
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> [23 lines of output]
Traceback (most recent call last):
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\pip_vendor\pyproject_hooks_in_process_in_process.py", line 353, in
main()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\pip_vendor\pyproject_hooks_in_process_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python311\Lib\site-packages\pip_vendor\pyproject_hooks_in_process_in_process.py", line 118, in get_requires_for_build_wheel
return hook(config_settings)
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\AppData\Local\Temp\pip-build-env-27k7c8x5\overlay\Lib\site-packages\setuptools\build_meta.py", line 341, in get_requires_for_build_wheel
return self._get_build_requires(config_settings, requirements=['wheel'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\AppData\Local\Temp\pip-build-env-27k7c8x5\overlay\Lib\site-packages\setuptools\build_meta.py", line 323, in _get_build_requires
self.run_setup()
File "C:\Users\Administrator\AppData\Local\Temp\pip-build-env-27k7c8x5\overlay\Lib\site-packages\setuptools\build_meta.py", line 488, in run_setup
self).run_setup(setup_script=setup_script)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Administrator\AppData\Local\Temp\pip-build-env-27k7c8x5\overlay\Lib\site-packages\setuptools\build_meta.py", line 338, in run_setup
exec(code, locals())
File "", line 7, in
File "C:\Users\Administrator\AppData\Local\Temp\pip-install-k3nb8fy1\pynat_dc3ad7b92e1e4f7184316f3c570a0b37\pynat.py", line 29, in
from six import text_type
ModuleNotFoundError: No module named 'six'
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.
请按任意键继续. . .

未适配Silicon M1 MacBook

[2022-04-07 10:06:50,437][INFO][4333798784][web.py:211]SSRSpeed 1.03, Web Api Version 0.5.2 [2022-04-07 10:06:50,437][INFO][4333798784][platform_check.py:9]Platform Info : macOS-12.2.1-arm64-arm-64bit [2022-04-07 10:06:50,437][INFO][4333798784][requirements_check.py:73]Checking libsodium. [2022-04-07 10:06:50,437][INFO][4333798784][platform_check.py:9]Platform Info : macOS-12.2.1-arm64-arm-64bit [2022-04-07 10:06:52,098][ERROR][4333798784][requirements_check.py:87]Libsodium not found. [2022-04-07 10:06:52,098][CRITICAL][4333798784][requirements_check.py:67]Requirement libsodium not found !!!

Geo IP timeout

改过IPLoc相关增加了headers也是这样

[2022-08-15 10:45:29,510][INFO][3284][geo_ip.py:89]Starting Geo IP.
[2022-08-15 10:45:34,552][ERROR][3284][geo_ip.py:105]Geo IP Timeout.
[2022-08-15 10:45:34,552][INFO][3284][speed_test.py:145]Node inbound IP : 103.103.245.220, Geo : N/A Unknown City, N/A
[2022-08-15 10:45:34,554][INFO][3284][speed_test_methods.py:105]Testing latency to google.
[2022-08-15 10:45:37,595][WARNING][3284][ping.py:71]Google Ping Timeout 1 times.
[2022-08-15 10:45:42,692][WARNING][3284][ping.py:71]Google Ping Timeout 2 times.
[2022-08-15 10:45:47,806][WARNING][3284][ping.py:71]Google Ping Timeout 3 times.
[2022-08-15 10:45:47,857][INFO][3284][geo_ip.py:89]Starting Geo IP.

输出图片错误

[2023-03-31 18:00:35,368][INFO][6004][export_result.py:723]Result exported as ./results/2023-03-31-18-00-35.json
Traceback (most recent call last):
File "C:\Users\L\Downloads\SSRSpeedN-1.03\main.py", line 247, in
sc.start_test(options.use_ssr_cs)
File "C:\Users\L\Downloads\SSRSpeedN-1.03\ssrspeed\core\ssrspeed_core.py", line 136, in start_test
self.__exportResult()
File "C:\Users\L\Downloads\SSRSpeedN-1.03\ssrspeed\core\ssrspeed_core.py", line 180, in __exportResult
er.export(self.__results,split,exportType,self.sortMethod)
File "C:\Users\L\Downloads\SSRSpeedN-1.03\ssrspeed\result\export_result.py", line 76, in export
self.__exportAsPng(result)
File "C:\Users\L\Downloads\SSRSpeedN-1.03\ssrspeed\result\export_result.py", line 611, in __exportAsPng
sum0 = int(test.readline())
ValueError: invalid literal for int() with base 10: ''

SS节点的密码 带有感叹号报错

yaml.constructor.ConstructorError: could not determine a constructor for the tag 'str'
in "", line 100, column 101:
... cipher: aes-128-gcm, password: ! 123456, udp: true}

【已解决】

`****** Import Hint 重要提示******
ChenBilly yyds!


Press ENTER to conitnue or Crtl+C to exit.
[2022-12-06 12:33:27,826][INFO][10220][main.py:91]SSRSpeed 1.03, Web Api Version 0.5.2
D:\Netch\SSRSpeedN-1.03\SSRSpeedN-1.03\main.py:100: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
logger.warn("Requirements check skipped.")
[2022-12-06 12:33:27,828][WARNING][10220][main.py:100]Requirements check skipped.
[2022-12-06 12:33:27,829][INFO][10220][config_parser.py:177]Reading 这里是订阅链接

这里省略

[2022-12-06 12:33:29,235][INFO][10220][export_result.py:723]Result exported as ./results/2022-12-06-12-33-29.json
Traceback (most recent call last):
File "D:\Netch\SSRSpeedN-1.03\SSRSpeedN-1.03\main.py", line 247, in
sc.start_test(options.use_ssr_cs)
File "D:\Netch\SSRSpeedN-1.03\SSRSpeedN-1.03\ssrspeed\core\ssrspeed_core.py", line 136, in start_test
self.__exportResult()
File "D:\Netch\SSRSpeedN-1.03\SSRSpeedN-1.03\ssrspeed\core\ssrspeed_core.py", line 180, in __exportResult
er.export(self.__results,split,exportType,self.sortMethod)
File "D:\Netch\SSRSpeedN-1.03\SSRSpeedN-1.03\ssrspeed\result\export_result.py", line 76, in export
self.__exportAsPng(result)
File "D:\Netch\SSRSpeedN-1.03\SSRSpeedN-1.03\ssrspeed\result\export_result.py", line 626, in __exportAsPng
Avgrate = (sum - sum0) / totalTraffic
ZeroDivisionError: division by zero

`
查看了一下文件:./results/2022-12-06-12-33-29.json,里面只有[]。

macOS geoip报错

[2022-05-09 23:16:03,187][ERROR][4341384576][geo_ip.py:76]Geo IP Failed.
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/requests/models.py", line 910, in json
return complexjson.loads(self.text, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/json/init.py", line 346, in loads
return _default_decoder.decode(s)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/Users/xxxxxxxxxx/Downloads/SSRSpeedN-1.03/ssrspeed/utils/geo_ip.py", line 70, in IPLoc
tmp = rep.json()
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/requests/models.py", line 917, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: [Errno Expecting value]

<title>403 Forbidden</title>

403 Forbidden


nginx : 0 [2022-05-09 23:16:03,188][ERROR][4341384576][geo_ip.py:78]b'\r\n<title>403 Forbidden</title>\r\n\r\n

403 Forbidden

\r\n
nginx\r\n\r\n\r\n'

测试节点时报错

在测试部分节点时报错,错误如下
image
调试后发现是节点前面的图标无法识别导致报错
image

windows7的疑问

这是什么意思 我看作者测试过的系统只有win10,win7是不能用吗
Snipaste_2022-04-07_10-29-18

请教复用检测

请教下复用检测这个功能
中转和落地都一样就是“完全复用”
中转一样但落地不一样就是“中转复用”
这样理解对么?

在main文件存在的情况下报错找不到main文件

以下订阅链接已做打码处理

请按任意键继续. . .

1:开始测速(自定义设置)
2:首次运行前安装pip和相关支持(需要管理员权限)
3:参数查阅
4:当前SSRSpeed版本
5:为本次运行获取管理员权限

请选择(1~5):
[1,2,3,4,5]?1

 以下自定义选项留空回车即可跳过

请输入您的订阅链接(不可留空):https://www.goingv2.xyz/link/
以下2项可以通过空格分隔关键词
1.使用关键字通过注释筛选节点:
2.通过使用关键字的注释排除节点:
3.请输入测速组名:1
4.导出图像时设置颜色[origin,poor],默认origin:poor
5.在[speed,rspeed,ping,rping]中选择输入排序方法,默认不排序,如默认请跳过:rspeed

python main.py -u "https://www.goingv2.xyz/link/" -g 1 -C poor -s rspeed --skip-requirements-check

python: can't open file 'main.py': [Errno 2] No such file or directory

请教复用检测

请教下复用检测这个功能
中转和落地都一样就是“完全复用”
中转一样但落地不一样就是“中转复用”
这样理解对么?

关于ssrspeed/utils/geo_ip.py 文件中 checkIPv4() 函数时间开销的探讨

,本人在浏览该部分代码时发现, 该函数是为域名转成ip做准备,也就是在domain2ip()中有调用。逻辑是如果检查为合法ip,则直接返回其本身。但令我迷惑的地方是,不论是否是ip或者域名,最终都要经过如下函数:
if (checkIPv4(domain)):
return domain
ip = "N/A"
try:
ip = socket.gethostbyname(domain)
return ip
except:
logger.exception("Translate {} to ipv4 failed.".format(domain))
return "N/A"
这就有点多此一举了,在这里我不知道判断合法v4地址的意义何在?况且经过测试发现:checkIPv4()函数本身使用正则匹配v4地址,极其占用时间开销,一个可能不明显,但是在日常生产环境中,测的机场少说也有二三十个节点吧,整个测试流程下来同步操作,时间开销就上来了。以下是时间开销测试截图:

测试截图

我不知道整个项目,还有多少这样做无用功的代码,也可能是我没看到其他弥补方案,故发布此issue与诸君交流。

订阅链接为Clash时,无法获取节点信息

当订阅文件为clash配置文件时,就无法获得节点信息

[2021-09-24 16:44:47,798][INFO][19144][main.py:91]SSRSpeed 1.01, Web Api Version 0.5.2
C:\Software\SSRSpeedN-main\main.py:100: DeprecationWarning: The 'warn' method is deprecated, use 'warning' instead
logger.warn("Requirements check skipped.")
[2021-09-24 16:44:47,800][WARNING][19144][main.py:100]Requirements check skipped.
[2021-09-24 16:44:47,800][INFO][19144][config_parser.py:176]Reading ……
[2021-09-24 16:44:54,487][INFO][19144][config_parser.py:220]Base64 decode failed.
Traceback (most recent call last):
File "C:\Software\SSRSpeedN-main\main.py", line 218, in
sc.console_setup(
File "C:\Software\SSRSpeedN-main\ssrspeed\core\ssrspeed_core.py", line 119, in console_setup
self.__parser.read_subscription(url.split(" "))
File "C:\Software\SSRSpeedN-main\ssrspeed\config_parser\config_parser.py", line 224, in read_subscription
self.__nodes.extend(self.__parse_clash(rep))
File "C:\Software\SSRSpeedN-main\ssrspeed\config_parser\config_parser.py", line 132, in __parse_clash
pc.parse_config(clash_cfg)
File "C:\Software\SSRSpeedN-main\ssrspeed\config_parser\clash_parser.py", line 135, in parse_config
for cfg in clash_cfg["Proxy"]:
KeyError: 'Proxy'

主界面pip安装无法使用

开代理的情况下报错:

Collecting pip
Downloading https://files.pythonhosted.org/packages/ca/31/b88ef447d595963c01060998cb329251648acf4a067721b0452c45527eb8/pip-21.2.4-py3-none-any.whl (1.6MB)
|████████████████████████████████| 1.6MB 819kB/s
Installing collected packages: pip
Found existing installation: pip 19.2.3
Uninstalling pip-19.2.3:
Successfully uninstalled pip-19.2.3
Successfully installed pip-21.2.4
ERROR: Exception:
Traceback (most recent call last):
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\cli\base_command.py", line 173, in _main
status = self.run(options, args)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\cli\req_command.py", line 203, in wrapper
return func(self, options, args)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\commands\install.py", line 315, in run
requirement_set = resolver.resolve(
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\resolution\resolvelib\resolver.py", line 94, in resolve
result = self._result = resolver.resolve(
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\resolvelib\resolvers.py", line 472, in resolve
state = resolution.resolve(requirements, max_rounds=max_rounds)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\resolvelib\resolvers.py", line 341, in resolve
self._add_to_criteria(self.state.criteria, r, parent=None)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\resolvelib\resolvers.py", line 172, in _add_to_criteria
if not criterion.candidates:
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\resolvelib\structs.py", line 151, in bool
return bool(self._sequence)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\resolution\resolvelib\found_candidates.py", line 140, in bool
return any(self)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\resolution\resolvelib\found_candidates.py", line 128, in
return (c for c in iterator if id(c) not in self._incompatible_ids)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\resolution\resolvelib\found_candidates.py", line 29, in _iter_built
for version, func in infos:
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\resolution\resolvelib\factory.py", line 272, in iter_index_candidate_infos
result = self._finder.find_best_candidate(
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\index\package_finder.py", line 851, in find_best_candidate
candidates = self.find_all_candidates(project_name)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\index\package_finder.py", line 798, in find_all_candidates
page_candidates = list(page_candidates_it)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\index\sources.py", line 134, in page_candidates
yield from self._candidates_from_page(self._link)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\index\package_finder.py", line 758, in process_project_url
html_page = self._link_collector.fetch_page(project_url)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\index\collector.py", line 490, in fetch_page
return _get_html_page(location, session=self.session)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\index\collector.py", line 400, in _get_html_page
resp = _get_html_response(url, session=session)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\index\collector.py", line 115, in _get_html_response
resp = session.get(
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\requests\sessions.py", line 555, in get
return self.request('GET', url, **kwargs)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\network\session.py", line 454, in request
return super().request(method, url, *args, **kwargs)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\requests\sessions.py", line 542, in request
resp = self.send(prep, **send_kwargs)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\requests\sessions.py", line 655, in send
r = adapter.send(request, **kwargs)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\cachecontrol\adapter.py", line 53, in send
resp = super(CacheControlAdapter, self).send(request, **kw)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\requests\adapters.py", line 439, in send
resp = conn.urlopen(
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\urllib3\connectionpool.py", line 696, in urlopen
self._prepare_proxy(conn)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\urllib3\connectionpool.py", line 964, in _prepare_proxy
conn.connect()
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\urllib3\connection.py", line 359, in connect
conn = self._connect_tls_proxy(hostname, conn)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\urllib3\connection.py", line 500, in connect_tls_proxy
return ssl_wrap_socket(
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\urllib3\util\ssl
.py", line 453, in ssl_wrap_socket
ssl_sock = ssl_wrap_socket_impl(sock, context, tls_in_tls)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\urllib3\util\ssl
.py", line 495, in _ssl_wrap_socket_impl
return ssl_context.wrap_socket(sock)
File "c:\users\12875\appdata\local\programs\python\python38\lib\ssl.py", line 500, in wrap_socket
return self.sslsocket_class._create(
File "c:\users\12875\appdata\local\programs\python\python38\lib\ssl.py", line 997, in _create
raise ValueError("check_hostname requires server_hostname")
ValueError: check_hostname requires server_hostname

不开代理的情况下报错:

请选择(1~5):
[1,2,3,4,5]?2
Requirement already satisfied: pip in c:\users\12875\appdata\local\programs\python\python38\lib\site-packages (21.2.4)
Collecting pillow
Downloading Pillow-8.3.1-1-cp38-cp38-win_amd64.whl (3.2 MB)
|████ | 368 kB 4.4 kB/s eta 0:10:51ERROR: Exception:
Traceback (most recent call last):
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\urllib3\response.py", line 438, in _error_catcher
yield
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\urllib3\response.py", line 519, in read
data = self._fp.read(amt) if not fp_closed else b""
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\cachecontrol\filewrapper.py", line 62, in read
data = self.__fp.read(amt)
File "c:\users\12875\appdata\local\programs\python\python38\lib\http\client.py", line 454, in read
n = self.readinto(b)
File "c:\users\12875\appdata\local\programs\python\python38\lib\http\client.py", line 498, in readinto
n = self.fp.readinto(b)
File "c:\users\12875\appdata\local\programs\python\python38\lib\socket.py", line 669, in readinto
return self._sock.recv_into(b)
File "c:\users\12875\appdata\local\programs\python\python38\lib\ssl.py", line 1241, in recv_into
return self.read(nbytes, buffer)
File "c:\users\12875\appdata\local\programs\python\python38\lib\ssl.py", line 1099, in read
return self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\cli\base_command.py", line 173, in _main
status = self.run(options, args)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\cli\req_command.py", line 203, in wrapper
return func(self, options, args)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\commands\install.py", line 315, in run
requirement_set = resolver.resolve(
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\resolution\resolvelib\resolver.py", line 94, in resolve
result = self._result = resolver.resolve(
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\resolvelib\resolvers.py", line 472, in resolve
state = resolution.resolve(requirements, max_rounds=max_rounds)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\resolvelib\resolvers.py", line 341, in resolve
self._add_to_criteria(self.state.criteria, r, parent=None)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\resolvelib\resolvers.py", line 172, in _add_to_criteria
if not criterion.candidates:
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\resolvelib\structs.py", line 151, in bool
return bool(self._sequence)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\resolution\resolvelib\found_candidates.py", line 140, in bool
return any(self)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\resolution\resolvelib\found_candidates.py", line 128, in
return (c for c in iterator if id(c) not in self._incompatible_ids)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\resolution\resolvelib\found_candidates.py", line 32, in _iter_built
candidate = func()
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\resolution\resolvelib\factory.py", line 204, in _make_candidate_from_link
self._link_candidate_cache[link] = LinkCandidate(
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\resolution\resolvelib\candidates.py", line 295, in init
super().init(
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\resolution\resolvelib\candidates.py", line 156, in init
self.dist = self._prepare()
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\resolution\resolvelib\candidates.py", line 227, in _prepare
dist = self._prepare_distribution()
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\resolution\resolvelib\candidates.py", line 305, in _prepare_distribution
return self._factory.preparer.prepare_linked_requirement(
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\operations\prepare.py", line 508, in prepare_linked_requirement
return self._prepare_linked_requirement(req, parallel_builds)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\operations\prepare.py", line 550, in _prepare_linked_requirement
local_file = unpack_url(
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\operations\prepare.py", line 239, in unpack_url
file = get_http_url(
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\operations\prepare.py", line 102, in get_http_url
from_path, content_type = download(link, temp_dir.path)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\network\download.py", line 145, in call
for chunk in chunks:
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\cli\progress_bars.py", line 144, in iter
for x in it:
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_internal\network\utils.py", line 63, in response_chunks
for chunk in response.raw.stream(
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\urllib3\response.py", line 576, in stream
data = self.read(amt=amt, decode_content=decode_content)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\urllib3\response.py", line 541, in read
raise IncompleteRead(self._fp_bytes_read, self.length_remaining)
File "c:\users\12875\appdata\local\programs\python\python38\lib\contextlib.py", line 131, in exit
self.gen.throw(type, value, traceback)
File "c:\users\12875\appdata\local\programs\python\python38\lib\site-packages\pip_vendor\urllib3\response.py", line 443, in _error_catcher
raise ReadTimeoutError(self._pool, None, "Read timed out.")
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.

请问这个错误是什么?

Collecting aiohttp_socks
Using cached aiohttp_socks-0.7.1-py3-none-any.whl (9.3 kB)
Collecting pynat
Using cached pynat-0.7.0.tar.gz (7.1 kB)
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error

× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [8 lines of output]
Traceback (most recent call last):
File "", line 2, in
File "", line 34, in
File "C:\Users\Administrator\AppData\Local\Temp\pip-install-_8q8khy6\pynat_4cf1f56bef3945618cbaceeb2460b58d\setup.py", line 7, in
from pynat import version, url
File "C:\Users\Administrator\AppData\Local\Temp\pip-install-_8q8khy6\pynat_4cf1f56bef3945618cbaceeb2460b58d\pynat.py", line 29, in
from six import text_type
ModuleNotFoundError: No module named 'six'
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

其它流媒体的测试结果不显示

选择了disney+ hbo, 但result的图片里没有生成啊。配置文件如下

{ "localAddress": "127.0.0.1", "localPort": 10870, "excludeRemarks": [ "剩余流量", "到期时间", "过期时间" ], "proxy": { "enabled": false, "address": "127.0.0.1", "port": 1080, "username": null, "password": null }, "ntt": { "enabled": true, "internal_ip": "0.0.0.0", "internal_port": 54320 }, "ping": false, "gping": true, "port": true, "speed": false, "method": "SOCKET", "StSpeed": false, "netflix": true, "stream": false, "hbo": true, "disney": true, "youtube": false, "abema": false, "bahamut": false, "tvb": false, "geoip":false, "multiplex":false, "web": { "listen": "127.0.0.1", "port": 10870, "token": "" }, "exportResult": { "uploadResult": false, "hide_max_speed": false, "font": "./resources/fonts/SourceHanSansCN-Medium.otf", "colors": [ { "name": "origin", "colors": { "4.0": [ 102, 255, 102 ], "8.0": [ 255, 255, 102 ], "16.0": [ 255, 178, 102 ], "24.0": [ 255, 102, 102 ], "32.0": [ 226, 140, 255 ], "40.0": [ 102, 204, 255 ], "50.0": [ 102, 102, 255 ] } }, { "name": "poor", "colors": { "4.0": [ 255, 215, 0 ], "8.0": [ 255, 178, 1 ], "16.0": [ 252, 105, 114 ], "24.0": [ 233, 130, 217 ], "32.0": [ 194, 108, 255 ], "40.0": [ 102, 192, 255 ], "50.0": [ 102, 111, 255 ] } } ] }, "uploadResult": { "apiToken": "", "server": "", "remark": "Example Remark." }, "fileDownload": { "maxWorkers": 4, "buffer": 4096, "skipRuleMatch": false, "rules": [ { "mode": "match_isp", "ISP": "Microsoft Corporation", "tag": "Google" }, { "mode": "match_isp", "ISP": "Google LLC", "tag": "Default" }, { "mode": "match_location", "countries": [ "TH" ], "tag": "Google" } ], "downloadLinks": [ { "link": "https://dl.google.com/dl/android/studio/install/3.4.1.0/android-studio-ide-183.5522156-windows.exe", "fileSize": 971, "tag": "Default" }, { "link": "https://dl.google.com/dl/android/studio/install/3.4.1.0/android-studio-ide-183.5522156-windows.exe", "fileSize": 971, "tag": "Google" } ] }, "webPageSimulation": { "maxThread": 4, "urls": [ "https://www.google.com.hk", "https://www.youtube.com", "https://www.bing.com", "https://www.github.com", "https://www.microsoft.com" ], "cnUrls": [ "https://www.baidu.com", "https://www.weibo.com", "https://www.qq.com" ] } }
微信截图_20220530132525

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.