首页 > 解决方案 > 使用 pyinstaller [eel] 编译应用程序时出错

问题描述

早些时候,当使用 pyinstaller 编译脚本时,一切都很好。我是这样跑的。

python -m eel stat1.py web --onefile --noconsole

现在我得到这个错误。可能是什么问题呢?我曾经在 python 3.7 中构建应用程序,现在 3.9 脚本本身是通过控制台启动的。

使用主脚本“stat1.py”和网络文件夹“web”构建可执行文件...

运行:pyinstaller stat1.py --hidden-import bottle_websocket --add-data C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\site-packages\eel\eel.js;eel - -add-data web;web --onefile --noconsole

720 信息:PyInstaller:4.5.1 720 信息:Python:3.9.4 720 信息:平台:Windows-10-10.0.19041-SP0 720 信息:写 C:\Users\vadim.sharoikin\Desktop\stat\stat1.spec 728 信息:UPX 不可用。730 信息:使用路径扩展 PYTHONPATH ['C:\Users\vadim.sharoikin\Desktop\stat','C:\Users\vadim.sharoikin\Desktop\stat'] 致命 Python 错误:init_import_site:无法导入站点模块Python 运行时状态:已初始化 Traceback(最近一次调用最后一次):文件“C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\site.py”,第 73 行,在 import os 文件“C :\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\os.py",第 27 行,在 import stat as st 文件中"C:\Users\vadim.sharoikin\Desktop\stat\stat. py",第 1 行,在 import pyodbc, datetime,time,eel, jinja2 文件中"C:init _.py”,第 5 行,从 gevent.threading 导入计时器文件“C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\site-packages\gevent_ init _.py”,第 62 行,在 import socket # pylint:disable=unused-import,useless-suppression File "C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\socket.py",第 67 行,在 所有.extend(os._get_exports_list( socket)) AttributeError: 部分初始化的模块 'os' 没有属性 'get_exports_list'(很可能是由于循环导入) 811 信息:检查分析 811 信息:构建分析,因为 Analysis-00.toc 不存在 811 信息:初始化模块依赖图... 811 信息:缓存模块图挂钩... 821 信息:分析 base_library.zip ... 致命 Python 错误:init_import_site:无法导入站点模块 Python 运行时状态:已初始化 Traceback(最近一次调用最后一次):文件“C:\Users\vadim.sharoikin\AppData\Local\ Programs\Python\Python39\lib\site.py",第 73 行,在 import os 文件中 "C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\os.py",第 27 行,在 import stat as st 文件 "C:\Users\vadim.sharoikin\Desktop\stat\stat.py" 中,第 1 行,在 import pyodbc, datetime,time,eel, jinja2 文件 "C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\site-packages\eel_init .py”,第 5 行,从 gevent.threading 导入计时器文件“C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\site-packages\gevent_init .py ”,第 62 行,在导入套接字 # pylint:disable=unused-import,useless-suppression File "C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\socket.py",第 67 行, 全部。扩展(os._get_exports_list(socket))AttributeError:部分初始化的模块'os'没有属性'get_exports_list'(很可能是由于循环导入)致命的 Python 错误:init_import_site:无法导入站点模块 Python 运行时状态:已初始化 Traceback(最近一次调用):文件“C:\Users\vadim.sharoikin\AppData\Local \Programs\Python\Python39\lib\site.py",第 73 行,在 import os 文件中 "C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\os.py",第 27 行, 在 import stat as st 文件 "C:\Users\vadim.sharoikin\Desktop\stat\stat.py" 中,第 1 行,在 import pyodbc, datetime,time,eel, jinja2 文件 "C:\Users\vadim.sharoikin \AppData\Local\Programs\Python\Python39\lib\site-packages\eel_ init .py”,第 5 行,从 gevent.threading 导入计时器文件“C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\site-packages\ gevent_init.py”,第 62 行,在导入套接字 # pylint:disable=unused-import,useless-suppression 文件“C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\socket.py”中,第 67 行, 全部.extend(os._get_exports_list( socket)) AttributeError: 部分初始化的模块 'os' 没有属性 'get_exports_list'(很可能是由于循环导入) 3796 信息:处理来自 'C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\site-packages\PyInstaller 的预查找模块路径挂钩 distutils \hooks\pre_find_module_path\hook-distutils.py'。3796 信息:distutils:重定向到非 venv 目录 'C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib' 11296 信息:缓存模块依赖关系图... 11467 信息:运行分析分析- 00.toc 11477 信息:将 Microsoft.Windows.Common-Controls 添加到 C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\python.exe 所需的最终可执行文件的依赖程序集 11539 警告:找不到库: C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\python39.dll 的 api-ms-win-core-path-l1-1-0.dll 依赖项 11570 信息:分析 C:. 致命的 Python 错误:init_import_site:无法导入站点模块 Python 运行时状态:已初始化 Traceback(最近一次调用):
文件“C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\site.py”,第 73 行,在 import os 文件“C:\Users\vadim.sharoikin\AppData\Local\Programs \Python\Python39\lib\os.py",第 27 行,在 import stat as st 文件中 "C:\Users\vadim.sharoikin\Desktop\stat\stat.py",第 1 行,在 import pyodbc, datetime,time ,eel, jinja2 文件“C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\site-packages\eel_ init
.py”,第 5 行,从 gevent.threading 导入计时器文件“C :\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\site-packages\gevent_init .py
",第 62 行,在导入套接字 # pylint:disable=unused-import,useless-suppression File" C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\socket。 py",第 67 行,总共.extend(os._get_exports_list(socket))AttributeError:部分初始化的模块'os'没有属性' get_exports_list'(很可能是由于循环导入)11878信息:从'C:加载模块挂钩'hook-gevent.py' \Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\site-packages\PyInstaller\hooks'... 致命的 Python 错误:init_import_site:无法导入站点模块 Python 运行时状态:已初始化 Traceback(大多数最近通话最后):
文件“C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\site.py”,第 73 行,在 import os 文件“C:\Users\vadim.sharoikin\AppData\Local\Programs \Python\Python39\lib\os.py",第 27 行,在 import stat as st 文件中 "C:\Users\vadim.sharoikin\Desktop\stat\stat.py",第 1 行,在 import pyodbc, datetime,time ,eel, jinja2 文件“C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\site-packages\eel_ init
.py”,第 5 行,从 gevent.threading 导入计时器文件“C :\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\site-packages\gevent_init .py
",第 62 行,在导入套接字 # pylint:disable=unused-import,useless-suppression File" C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\socket。 py",第 67 行,总共.extend(os._get_exports_list( socket)) AttributeError: 部分初始化的模块'os'没有属性'get_exports_list'(很可能是由于循环导入) 12328 信息:确定分发到包的映射... 40832 警告:无法从包 gevent 中找到要求 zope.event 的包。40832 警告:无法从包 gevent 中找到要求 zope.interface 的包。40832 信息:gevent 所需的包:['cffi'、'greenlet'、'setuptools'] 41936 信息:处理来自'C:\Users\vadim.sharoikin\AppData 的安全前导入模块挂钩 setuptools.extern.six.moves \Local\Programs\Python\Python39\lib\site-packages\PyInstaller\hooks\pre_safe_import_module\hook-setuptools.extern.six.moves.py'。致命的 Python 错误:init_import_site:无法导入站点模块 Python 运行时状态:已初始化 Traceback(最近一次调用):
文件“C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\site.py”,第 73 行,在 import os 文件“C:\Users\vadim.sharoikin\AppData\Local\Programs \Python\Python39\lib\os.py",第 27 行,在 import stat as st 文件中 "C:\Users\vadim.sharoikin\Desktop\stat\stat.py",第 1 行,在 import pyodbc, datetime,time ,eel, jinja2 文件“C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\site-packages\eel_ init
.py”,第 5 行,从 gevent.threading 导入计时器文件“C :\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\site-packages\gevent_init .py
",第 62 行,在导入套接字 # pylint:disable=unused-import,useless-suppression File" C:\Users\vadim.sharoikin\AppData\Local\Programs\Python\Python39\lib\socket。 py",第 67 行,总共.extend(os._get_exports_list(_socket)) AttributeError: 部分初始化的模块“os”没有属性“_get_exports_list”(很可能是由于循环导入)pre-safe-import-module 钩子失败,需要修复。

标签: pythonpython-3.xpyinstallereel

解决方案


为了包括对 HTML 模板的支持,目前使用 Jinja2,我认为这是您使用网络后的问题:

pip install eel[jinja2]


推荐阅读