Python使用html解析包Requests-html运行py文件没问题,Pyinstaller打包exe后运行报错
背景
Python利用Requests-html查询百度排名,使用打包指令打包exe
PowerShell 全选
pyinstaller -F apiServer_paiming.py
遇到问题
打包后运行exe,出现报错,报错信息如下:
Python Request-html模块打包exe后报错信息
PS E:\GZ\Python\gz\dist> .\apiServer_paiming.exe
Traceback (most recent call last):
File "apiServer_paiming.py", line 14, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "run_baidu_paiming.py", line 7, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "requests_html.py", line 9, in <module>
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "pyppeteer\__init__.py", line 43, in <module>
NameError: name '__version__' is not defined
[5884] Failed to execute script 'apiServer_paiming' due to unhandled exception!
分析问题
apiServer_paiming.py 第14行信息
run_baidu_paiming.py 中第七行信息
通过错误信息,我们可以锁定问题是出在了requests-html中
查询资料
https://github.com/pyppeteer/pyppeteer/issues/213
https://github.com/pyppeteer/pyppeteer/issues/213#issuecomment-898283261
解决方案
打包exe的时候把打包指令改为:
PowerShell 全选
pyinstaller -F --onefile apiServer_paiming.py --copy-metadata pyppeteer
这种方式打包的exe就没有问题了
PowerShell 全选
PS E:\GZ\Python\gz\dist> .\apiServer_paiming.exe
* Serving Flask app "apiServer_paiming" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://0.0.0.0:5800/ (Press CTRL+C to quit)
版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
post 管理员