您的位置:首页 > 科技 > IT业 > 黄冈网站建设 网络推广_塘沽网站建设_郑州模板建站代理_seo整站优化推广

黄冈网站建设 网络推广_塘沽网站建设_郑州模板建站代理_seo整站优化推广

2025/7/17 2:27:08 来源:https://blog.csdn.net/weixin_43764974/article/details/142624841  浏览:    关键词:黄冈网站建设 网络推广_塘沽网站建设_郑州模板建站代理_seo整站优化推广
黄冈网站建设 网络推广_塘沽网站建设_郑州模板建站代理_seo整站优化推广

文章目录

  • 一、错误描述
  • 二、解决
  • 三、openpyxl 和 pandas
  • 四、pyinstaller 常用选项

一、错误描述

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 的单独可执行文件。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com