python - 使用 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 运行相同的代码时。没有错误。
解决方案
我只是用 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')]
推荐阅读
- javascript - HTML/CSS JavaScript 中的水平菜单滚动条
- firebase - 无需部署云功能即可修改firestore数据的简便方法
- javascript - 离开或刷新页面时如何弹出自定义模态?
- ios - 按钮 onclick 适用于 android 但不适用于 ios
- javascript - 在不修改原始数组的情况下将数组复制和计算到另一个数组
- keyboard - AQTime 重新映射标准键盘快捷键?
- android - 在 Android Auto 中镜像现有的 android 应用程序
- java - 尝试从 Saucelabs 中的 android 模拟器调用 chrome 浏览器时无法创建新会话?
- elasticsearch - Python elasticsearch-dsl doctype 更新超时
- google-sheets - 将数据从谷歌表格导入谷歌表单