【python】pyqt5 程序打包成exe后缺少openpyxl(pandas处理excel表格)

一、错误描述

pyqt界面,选择表格,处理数据。

pyinstaller打包后,选择表格时显示缺少openpyxl

安装:

conda activate pyqt
pip install openpyxl

打包命令加上:--hidden-import=openpyxl

重新打包后运行exe,显示缺少:openpyxl.cell._writer

二、解决

打包命令中手动模块导入改成:--hidden-import=openpyxl.cell._writer

而不是:--hidden-import=openpyxl


我的打包命令:

pyinstaller -F --paths=D:\anaconda\envs\pack\Lib\site-packages --python=D:\anaconda\envs\pack\python.exe  --noconsole   --hidden-import=openpyxl.cell._writer --name=测试 test.py

其中:

--paths=D:\anaconda\envs\pack\Lib\site-packages

是项目使用的conda虚拟环境

--python=D:\anaconda\envs\pack\python.exe

是这个虚拟环境中的python解释器。

 --noconsole

表示无控制台界面,因为这个程序是QT界面,不需要控制台输入输出。

--hidden-import=openpyxl.cell._writer

指明脚本中不可见的导入关系。(程序导入了A,A使用了B,B使用了C,pyinstaller有可能解析不到。)

--name=测试

为exe文件名称

test.py

为要打包的主程序


🟢基础知识:

conda虚拟环境知识

conda虚拟环境下使用pyinstaller打包程序为exe

建议新建虚拟环境,而不是使用默认环境(base),多个项目使用相同环境,环境会很臃肿,且库之间的版本依赖可能会被破坏。

在新的环境中,安装项目所需库即可,conda和pip方式都可以的。(首先activate激活这个环境,再安装)

🟠注意点:

  • 进入项目目录打包;
  • 进入项目使用的虚拟环境;
  • 在虚拟环境中安装pyinstaller。

三、openpyxl 和 pandas

  1. openpyxl 库:

    • 安装和导入:首先,你需要使用 pip install openpyxl 命令安装 openpyxl 库,然后在 Python 脚本中导入它(import openpyxl)。
    • 打开 Excel 文件:使用 openpyxl.load_workbook() 函数打开 Excel 文件,例如:workbook = openpyxl.load_workbook('example.xlsx')
    • 选择工作表:通过工作表名称或索引选择要操作的工作表,例如:worksheet = workbook['Sheet1']worksheet = workbook.worksheets[0]
    • 读取单元格数据:使用 worksheet.cell(row, column).value 方法读取指定单元格的数据,例如:data = worksheet.cell(1, 1).value
    • 写入单元格数据:使用 worksheet.cell(row, column).value 方法写入指定单元格的数据,例如:worksheet.cell(1, 1).value = 'Hello'
    • 保存 Excel 文件:使用 workbook.save() 方法保存对 Excel 文件的修改,例如:workbook.save('example.xlsx')
  2. pandas 库:

    • 安装和导入:使用 pip install pandas 命令安装 pandas 库,然后在 Python 脚本中导入它(import pandas as pd)。
    • 读取 Excel 文件:使用 pandas.read_excel() 函数读取 Excel 文件,例如:dataframe = pd.read_excel('example.xlsx')
    • 数据操作:使用 pandas 提供的丰富功能进行数据操作,例如筛选、排序、分组、聚合等。
    • 写入 Excel 文件:使用 dataframe.to_excel() 函数将 DataFrame 数据写入 Excel 文件,例如:dataframe.to_excel('output.xlsx', index=False)

使用 openpyxl 库示例:

import openpyxl

# 打开 Excel 文件
workbook = openpyxl.load_workbook('example.xlsx')

# 选择工作表
worksheet = workbook['Sheet1']

# 读取单元格数据
data = worksheet.cell(row=1, column=1).value
print(data)  # 输出第一个单元格的数据

# 写入单元格数据
worksheet.cell(row=1, column=2).value = 'World'

# 保存 Excel 文件
workbook.save('example.xlsx')

使用 pandas 库示例:

import pandas as pd

# 读取 Excel 文件
dataframe = pd.read_excel('example.xlsx')

# 打印表格数据
print(dataframe)

# 数据操作示例,计算列的和
sum_column = dataframe['Column1'].sum()
print(f"Sum of Column1: {sum_column}")

# 写入 Excel 文件
dataframe.to_excel('output.xlsx', index=False)

通过这两个库,你可以使用 Python 读取、写入、修改和处理 Excel 表格中的数据。openpyxl 提供了更底层的操作,适用于对 Excel 文件的低级控制,而 pandas 提供了更高级、更便捷的数据操作功能,适用于大规模数据处理和分析。


四、pyinstaller 常用选项

PyInstaller 支持许多选项,以便你根据需要自定义打包过程。一些常用的选项包括:

  1. 打包选项:

    • -F--onefile生成单个可执行文件
    • -D--onedir:生成一个包含多个文件的目录。
    • -w--windowed:创建一个窗口应用程序,没有控制台窗口。
    • -c--console:创建一个带有控制台窗口的命令行应用程序。
    • -m--name:指定生成的可执行文件的名称。
    • --add-data:添加额外的数据文件到可执行文件中。
  2. 导入选项:

    • -p--paths添加搜索Python模块的路径
    • --hidden-import指定需要手动导入但不在源代码中明确导入的模块
  3. 打包配置选项:

    • --name指定生成的可执行文件的名称
    • --icon指定可执行文件的图标文件
    • --version-file:指定版本信息文件。
    • --upx-dir:指定UPX可执行文件压缩工具的目录。
  4. 调试选项:

    • --debug生成带有调试信息的可执行文件
  5. 优化选项:

    • -O--optimize:使用优化编译Python文件。
    • --noconfirm:禁用优化编译确认提示。
  6. 其他选项:

    • -h--help:显示帮助信息。
    • --clean:清理临时文件。
    • --noconfirm:在覆盖现有输出目录时不进行确认。
    • --noconsole:不显示控制台
    • --python指定python解释器的路径

这只是一些常用的PyInstaller参数,实际上有更多选项可用于更复杂的定制。你可以使用pyinstaller --help命令来查看完整的参数列表和说明。

例如,要生成一个单独的可执行文件并指定其名称,你可以使用以下命令:

pyinstaller -F -n my_app my_script.py

这将生成一个名为 my_app 的单独可执行文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

感谢地心引力

有用的话请我喝杯咖啡吧????

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值