URenko / Accesser

🌏一个解决SNI RST导致维基百科、Pixiv等站点无法访问的工具 | A tool for solving SNI RST
GNU General Public License v3.0
874 stars 77 forks source link

生成程序出现ModuleNotFoundError #108

Closed kukukumiko-git closed 1 year ago

kukukumiko-git commented 1 year ago

因为试着加了几个网站,所以开始折腾生成程序,运行然后报错,python版本3.10 捕获

py库肯定都是装了的 捕获2 翻了指南和issue,sysporxy自己编译的直接放到根目录,dnsscrypt应该是win64版吧,只拿出里面的exe放到dnscrypt文件夹 捕获3 开发者指南里的.spec失效了,但自带的spec应该是可以用的吧,直接pyinstaller accesser.spec 另外直接再IDE运行好像也没有成功,第一次运行弹出安装证书有webUI,但是无法连上支持的网站(包括原有的和我自己加的,而直接下载发布的程序运行是可以上去的)

URenko commented 1 year ago

开发者指南里的.spec失效了

是什么意思?

或许可以参考https://github.com/URenko/Accesser/blob/master/.github/workflows/test.yml ,不过没测试过

无法连上是什么样的错误?

kukukumiko-git commented 1 year ago

开发者指南里的https://gist.github.com/URenko/ea511f422c225887ae2c49ccaab64839 这个链接打不开,应该是我没表达清楚,可能是因为墙的问题,但目前我没法用梯子。

test.yml里的命令直接运行会提示这个 捕获2

但tset.yml里的accesser.spec链接可以打开,我直接按accesser.spec里的要求改了spec文件

但是accesser.spec里有一行 ('Python安装的目录/Lib/site-packages/tld/res/effective_tld_names.dat.txt', 'tld/res')], python安装目录下并没一tld文件夹,包是在项目的venv文件夹里,是不是这里搞错了什么。。。。 总之我试着把项目目录下的tld文件夹复制到python安装目录的对应文件夹里,然后错误变成了 捕获

无法连上网页是ERR_CONNECTION_TIMED_OUT IED里错误是urllib.error.URLError:<urlopen error [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。>

URenko commented 1 year ago

test.yml里的命令直接运行会提示这个

这是因为你这个终端是powershell,curl实为Invoke-WebRequest,我写的-OL是(真正的)curl的参数

呃,用venv啊,这我还真没考虑到。虽然直接把tld复制到python安装目录对应位置理应工作,但不知道为什么你这不行。 或许你可以: ✦放弃venv,直接外面安装tld(先删掉) 或者 ✦在venv目录下找到effective_tld_names.dat.txt的位置并在accesser.spec中替换对应路径

直接运行的话有日志吗 也可以用cmd的(真正的)curl试下,比如:

curl -x socks5h://127.0.0.1:7655 https://www.pixiv.net

kukukumiko-git commented 1 year ago

在换成名字后面不带括号项目名的解释器后就好了,真是不知道怎么回事。。。 tld包还是在项目的venv里 捕获

但是程序好像是完全不起作用的,总之附上日志吧 Accesser.log

URenko commented 1 year ago

没用过你这个IDE,所以我也不知道它做了什么(我都直接用python)

从日志上来看,端口被占用,是不是开了另一个程序,或许可以任务管理器检查下 然后curl看看

kukukumiko-git commented 1 year ago

我自己生成的版本连不上,关掉之后,再打开Releases的就是正常的。应该不是端口问题吧 不知道哪不对,整麻了

URenko commented 1 year ago

(cmd的)curl怎么说

kukukumiko-git commented 1 year ago

什么都没有,光标直接在下一行开头,什么也不能再输入 我确实已经安装了curl

URenko commented 1 year ago

日志里也没有pixiv.net吗,如果是这样那就奇怪了

kukukumiko-git commented 1 year ago

你好啊,我尝试在另一个目录新建了项目,一样配置了环境,然后生成程序报错变成了 捕获

这个项目里没有venv,库都是安在python目录里(我还是超级菜鸟,没太明白venv是怎么回事。。

URenko commented 1 year ago

config.json.default的第三行写错了?

kukukumiko-git commented 1 year ago

你好啊,我发现吧config.json.default第三行改回null就不报错了,但是生成的程序还是不能用orz,而且也没日志生成了

URenko commented 1 year ago

可以发下生成的可执行文件吗

kukukumiko-git commented 1 year ago

这里有两个不同的文件 一个是最初尝试的,这个的config.json.default里是accesser.log而不报错,可以生成日志,命名是_log 另一个是我在另一个目录新建一个项目,结果config.json.default必须要是null才不报错,命名是_null accesser.zip

URenko commented 1 year ago

抱歉前面说错了,应该是

curl -x http://127.0.0.1:7655 https://www.pixiv.net/

因为Accesser还不支持socks5 (#66) (时间太久给忘了)

然后问题应该出在dnscrypt版本的问题,不支持bootstrap_resolvers这个配置文件的值(https://github.com/URenko/Accesser/issues/53#issuecomment-922273073 )。见你%tmp%\_MEI一串数字\dnscrypt\dnscrypt-proxy.log下的日志

你似乎用的是一个老版本(2.0.23)的dnscrypt,见https://github.com/DNSCrypt/dnscrypt-proxy/releases/tag/2.1.0 及 https://github.com/URenko/Accesser/commit/5e93c5eb41fc824d0c930a6c10025db956086d53 的变更。 换一个新的dnscrypt或者改用老版本的写法可能能解决问题(我没测试)

另外不建议直接改config.json.default,你可以在.exe旁边建一个config.json写你想要的配置,会优先使用

kukukumiko-git commented 1 year ago

curl结果是 curl: (35) schannel: next InitializeSecurityContext failed: Unknown error (0x80092012) - 由于吊销服务器已脱机,吊销功能 无法检查吊销。 是证书有问题吗?releases的程序是可以用的

至于版本问题,是我也怀疑是否是版本问题,直接从releases的程序运行后的tmp里拉了exe出来,而我一开始用的dnscrypt是2.1.2,可以看我一开始发的目录截图。

用2.1.0后也情况都没有改变,两个都依然无效,(新建项目的那一个)config.json.default第三行还是得是null才行,另外好像并没有优先读取config.json

URenko commented 1 year ago

curl这个似乎是Windows的问题,你可以加--insecure忽略这一点

你可以把用高版本dnscrypt的和非null config.json.default的.exe都发上来看看

kukukumiko-git commented 1 year ago

accesser_log_2.10.zip curl结果是 curl: (5) Could not resolve proxy

kukukumiko-git commented 1 year ago

accesser_null_2.10.zip

URenko commented 1 year ago

我试了下accesser_log_2.10.zip是可以工作的,并且外面的config.json也是可以读取的 image 你确定你打的是

curl -x http://127.0.0.1:7655 https://www.pixiv.net/ --insecure

至于accesser_null_2.10.zip,你Accesser.log没加双引号,它是个字符串

kukukumiko-git commented 1 year ago

确实是我打错了。。。 现在curl也出来这些东西,但是网页还是打不开,而release版的一直都正常 捕获2

端口应该没占用吧 捕获1

另外我想用火狐试试,但现在在点击了webui导入证书以后弹出的是下载crt文件,下载完成后直接是windows的安装证书,所以没有尝试

URenko commented 1 year ago

我怀疑你的代理设置不太对,你可以检查下系统的设置(因为chrome使用系统的)

Firefox的行为似乎有变更,现在似乎也会使用系统的证书,因此不用再导入(至少我试了是这样)。但手动设置代理应该还是要的。见 https://github.com/URenko/Accesser/wiki/Firefox设置方法

kukukumiko-git commented 1 year ago

会不会和chrome装了 SwitchySharp 有关系 但什么都不变关掉再打开release版就没问题

URenko commented 1 year ago

有可能,但还是建议检查下系统的代理设置。因为你sysprorxy是自己编译的(sysproxy负责自动设置系统代理)

kukukumiko-git commented 1 year ago

捕获 系统设置。。。我能想到只要这个了 实际上后面的sysprorxy已经是从V2ray里直接拿出来的了 另外我多试了一下,发现release的程序也会有有的网站curl有结果,但是上不去

URenko commented 1 year ago

因为难以复现你的情况……建议先使用Firefox手动设置代理

URenko commented 1 year ago

你现在可以尝试新版本