首页 > 解决方案 > 使用 Pyinstaller 打包后代码不运行

问题描述

我使用 robobrowser 创建了一个代码来检查网站状态并将其记录到文件中,如果 HTTP 响应不是 400,则发送邮件。

后来我不得不添加 Pypac,因为我的系统在代理之后。

其余代码在打包后工作。我尝试过不同的机器(不在代理后面)

一旦我添加代理,打包的就会.exe停止工作。

我也尝试在隐藏导入中添加“pypac”。


from pypac import PACSession
from robobrowser import RoboBrowser


session = PACSession()
browser = RoboBrowser(history=True, session=session)

由于代理部分不起作用。

它抛出如下错误:

“urlopen error [WinError 10060] 连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应”

当我使用 python 运行相同的代码时。没有错误。

标签: pythonpython-3.xpython-2.7pyinstaller

解决方案


我只是用 PyPac 重新编写了一个小代码,并将它与 Pyinstaller 打包,console=True。

返回的错误是

FileNotFoundError: [Errno 2] 没有这样的文件或目录:'C:\Users\CHOWDH~1\AppData\Local\Temp\_MEI199722\tld\res\effective_tld_names.dat.txt'

因此,在打包时,我使用规范文件C:\Python\Python37-32\Lib\site-packages\tld\res添加了数据

规格文件截图

datas=[('C:\Python\Python37-32\Lib\site-packages\tld\res\effective_tld_names.dat.txt', 'tld\res')]


推荐阅读