无法从 tkinter Python 的 exe 下载数据帧到 excel
cant download dataframe to excel from exe of tkinter Python
我尝试使用 Tkinter 库将我的数据分析项目转换为 GUI。
我在 PyCharm 上构建了整个项目并且一切正常。
所以我尝试将我的项目转换为 exe。
我在终端上输入了这段代码:
pyinstaller.exe --onefile --icon="icon.png" gui.py
然后在 dist 文件夹上,我将我的资产文件夹复制到带有 exe 的新文件夹(这样所有图像都可以工作,而且它们确实如此 - 我的 exe 项目工作)
所有图形显示都有效。
这是我的 dist 文件夹:
尽管当我尝试将我的 DataFrame 执行到 excel 项目时,我在 exe 项目的终端上遇到错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "tkinter\__init__.py", line 1921, in __call__
File "gui.py", line 180, in <lambda>
File "Analyst.py", line 64, in print_sum
File "Analyst.py", line 10, in download_df_to_csv_local
File "pandas\core\generic.py", line 2345, in to_excel
File "pandas\io\formats\excel.py", line 888, in write
File "pandas\io\excel\_openpyxl.py", line 49, in __init__
ModuleNotFoundError: No module named 'openpyxl'`
如您所见,问题出在我的文件 Analyst.py 函数上:
def download_df_to_csv_local(df):
token_id = secrets.token_urlsafe(6)
df.to_excel(r'C:\Users\עידן\Desktop\all_connected' + token_id + '.xlsx', index=False)
我不得不提一下,我的 PyCharm 一切正常,只有当我编译为 exe 时才出现错误
当正在转换为exe的主文件中存在不可见或直接导入的导入时,会出现此错误。由于 pandas 使用模块 openpyxl 读取和写入不同的 excel 格式。
您可以在 pyinstaller 中使用 --hidden-import MODULE-NAME
选项。
该命令将如下所示:
pyinstaller --onefile --hidden-import openpyxl --icon="icon.png" gui.py
我按照以下方式解决了自己的错误:
- 在终端上确保您在项目路径上。
- 输入
pip install openpyxl
- 按类型执行要exe的文件
pyinstaller --onefile --icon="icon.png" gui.py
我尝试使用 Tkinter 库将我的数据分析项目转换为 GUI。 我在 PyCharm 上构建了整个项目并且一切正常。
所以我尝试将我的项目转换为 exe。
我在终端上输入了这段代码:
pyinstaller.exe --onefile --icon="icon.png" gui.py
然后在 dist 文件夹上,我将我的资产文件夹复制到带有 exe 的新文件夹(这样所有图像都可以工作,而且它们确实如此 - 我的 exe 项目工作)
所有图形显示都有效。
这是我的 dist 文件夹:
尽管当我尝试将我的 DataFrame 执行到 excel 项目时,我在 exe 项目的终端上遇到错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "tkinter\__init__.py", line 1921, in __call__
File "gui.py", line 180, in <lambda>
File "Analyst.py", line 64, in print_sum
File "Analyst.py", line 10, in download_df_to_csv_local
File "pandas\core\generic.py", line 2345, in to_excel
File "pandas\io\formats\excel.py", line 888, in write
File "pandas\io\excel\_openpyxl.py", line 49, in __init__
ModuleNotFoundError: No module named 'openpyxl'`
如您所见,问题出在我的文件 Analyst.py 函数上:
def download_df_to_csv_local(df):
token_id = secrets.token_urlsafe(6)
df.to_excel(r'C:\Users\עידן\Desktop\all_connected' + token_id + '.xlsx', index=False)
我不得不提一下,我的 PyCharm 一切正常,只有当我编译为 exe 时才出现错误
当正在转换为exe的主文件中存在不可见或直接导入的导入时,会出现此错误。由于 pandas 使用模块 openpyxl 读取和写入不同的 excel 格式。
您可以在 pyinstaller 中使用 --hidden-import MODULE-NAME
选项。
该命令将如下所示:
pyinstaller --onefile --hidden-import openpyxl --icon="icon.png" gui.py
我按照以下方式解决了自己的错误:
- 在终端上确保您在项目路径上。
- 输入
pip install openpyxl
- 按类型执行要exe的文件
pyinstaller --onefile --icon="icon.png" gui.py