SeaHOH / GotoX

本地自动代理,修改自 goagent。
722 stars 147 forks source link

v3.8.8 运行又失败了…… #226

Open lshilshi opened 2 years ago

lshilshi commented 2 years ago

出错记录

Traceback (most recent call last):
  File "D:\GreenProgram\GotoX\local\compat\__init__.py", line 118, in init
    import gevent
ModuleNotFoundError: No module named 'gevent'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\GreenProgram\GotoX\start.py", line 25, in <module>
    from local import proxy
  File "D:\GreenProgram\GotoX\local\proxy.py", line 52, in <module>
    compat.init()
  File "D:\GreenProgram\GotoX\local\common\decorator.py", line 16, in newfunc
    result = func(*args, **kwargs)
  File "D:\GreenProgram\GotoX\local\compat\__init__.py", line 120, in init
    wait_exit('无法找到 gevent 或者与 Python 版本不匹配,'
  File "D:\GreenProgram\GotoX\local\compat\__init__.py", line 13, in wait_exit
    from local.common.util import wait_exit
  File "D:\GreenProgram\GotoX\local\common\util.py", line 14, in <module>
    from .net import isipv4, isipv6
  File "D:\GreenProgram\GotoX\local\common\net.py", line 8, in <module>
    import OpenSSL
ModuleNotFoundError: No module named 'OpenSSL'
SeaHOH commented 2 years ago

确实,不过 Win 10 也是这样。。。 CI 打包和本地打包依赖不一样,忘记测试 CI 的依赖了。

修复版本已发布。

lxf1009 commented 2 years ago

3.8.8-r1 win7还是不行 @SeaHOH

Traceback (most recent call last):
  File "C:\软件\GotoX-3.8.8-cp310-win32\local\compat\__init__.py", line 118, in
init
    import gevent
  File "C:\软件\GotoX-3.8.8-cp310-win32\python\site-packages\gevent-21.12.0.egg\
gevent\__init__.py", line 86, in <module>
    from gevent._hub_local import get_hub
  File "C:\软件\GotoX-3.8.8-cp310-win32\python\site-packages\gevent-21.12.0.egg\
gevent\_hub_local.py", line 101, in <module>
    import_c_accel(globals(), 'gevent.__hub_local')
  File "C:\软件\GotoX-3.8.8-cp310-win32\python\site-packages\gevent-21.12.0.egg\
gevent\_util.py", line 148, in import_c_accel
    mod = importlib.import_module(cname)
  File "importlib\__init__.py", line 126, in import_module
ModuleNotFoundError: No module named 'gevent._gevent_c_hub_local'
SeaHOH commented 2 years ago

~估计是你升级时是直接覆盖,没有把 python 这个文件夹删除掉,删掉再覆盖就好了。~

刚才没注意,win32 版本确实有问题,你先用 amd64 版本的,我再看看怎么解决。

SeaHOH commented 2 years ago

看了一下,似乎只有手动修改手动打包才能解决问题,看来暂时只能打包 CPython 3.9 的 win32 版本。

SeaHOH commented 2 years ago

刚打包了一个 Python 3.9 32 位版本的,如果你无法运行 64 位程序的话可以下载这个。

lxf1009 commented 2 years ago

新打包的还是不行,这次是闪退。我用的master覆盖3.8.7是可以正常使用的。

SeaHOH commented 2 years ago

@lxf1009 如果可能的话,请上传 log.txt 文件。我平时使用的是 64 位,32 位的只是偶尔会试一下,还真不太确定哪里不对。

SeaHOH commented 2 years ago

又重新传了个 GotoX-3.8.8r2-cp39-win32.7z,你再试试看。

升级新版本时,不要单纯全部覆盖。

lxf1009 commented 2 years ago

@SeaHOH 3.8.8r2-cp39这个可以了没问题了。

SeaHOH commented 2 years ago

在openwrt 路由器上 提示没有 gevent

这不是我的问题,如果你不想用 gevent 的话,请使用 nogevent 参数启动。

打开gevent 的效果明显吗?在什么场景作用明显?已经有多线程 range 了,感觉不到gevent 的作用

好处:大量节约运行内存、降低 CPU 开销 (后者存疑,主要是我写的代码可能不太好) 坏处:降低性能、可能会有潜在的 bug

不用的话可以少些依赖,但是似乎当前版本不用它会有内存泄露,没长时间运行过,不太确定。

另外,不要老是删回复,没啥见不得人的。

SeaHOH commented 2 years ago

想在openwrt 路由器上启用gevent ,但openwrt没有相对应的packages ,当前打包的gevent 只能在windows 运行

打包说明写得很明确,就是 Windows。真没用过 openwrt,请自行搜索安装方法。

下面这个是猴子补丁吗?不打开猴子补丁 gevent 起作用吗

这个注释里也是写清楚了的,Windows 下使用 libuv 事件循环有 bug,这只是缓解措施,并非修复。其它系统和事件的组合我并不清楚,但如果相应 gevent 事件循环不会导致 GotoX 卡死、 CPU 占用异常或代理请求数据缺失,就不用打补丁。而当前默认配置已经是 libev,这个补丁也是未启用的。 所以,只要你没加 nogevent 启动参数,gevent 就一直是用到了的。当然,前提是你有正确安装 gevent。

lshilshi commented 2 years ago

@SeaHOH 看过#219了 win7系统,网络不固定(但是应该都没有IPV6条件) 当前阶段是没法直接访问Google了? CFW都是404

15:36:45 W L4:58113-> do_DIRECT 由于有上传数据 "POST https://www.googleapis.com/
oauth2/v4/token" 终止重试
15:36:51 W L4:58138-> do_DIRECT "GET https://www.google.com/search?q=tuj&oq=tuj&
aqs=chrome..69i64j69i57.1984j0j4&sourceid=chrome&ie=UTF-8" 没有正确响应,重试。
15:36:51 W L4:58138-> do_DIRECT "GET https://www.google.com/search?q=tuj&oq=tuj&
aqs=chrome..69i64j69i57.1984j0j4&sourceid=chrome&ie=UTF-8" 失败,返回 404
15:36:51 W L4:58142-> do_DIRECT "GET https://www.google.com/search?q=tuj&oq=tuj&
aqs=chrome..69i64j69i57.1984j0j4&sourceid=chrome&ie=UTF-8" 没有正确响应,重试。
15:36:51 W L4:58142-> do_DIRECT "GET https://www.google.com/search?q=tuj&oq=tuj&
aqs=chrome..69i64j69i57.1984j0j4&sourceid=chrome&ie=UTF-8" 失败,返回 404
15:36:52 W L4:58143-> do_DIRECT "POST https://www.googleapis.com/oauth2/v4/token
" 没有正确响应,重试。
15:36:52 W L4:58143-> do_DIRECT 由于有上传数据 "POST https://www.googleapis.com/
oauth2/v4/token" 终止重试