首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在用pyinstaller制作的exe文件中找不到openpyxl

在用pyinstaller制作的exe文件中找不到openpyxl
EN

Stack Overflow用户
提问于 2022-09-26 09:40:35
回答 2查看 443关注 0票数 1

我使用带有pip的虚拟evn编写了Python代码,并使用pyinstaller构建了它作为可执行文件,而且它可以工作。现在我要搬到conda环境去使用地质公园,fiona和gdal。我可以在没有任何错误的情况下运行它,但是如果我将代码构建到.exe中,则会引发以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "main.py", line 5, in <module>
  File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
  File "openpyxl\__init__.py", line 6, in <module>
  File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
  File "openpyxl\workbook\__init__.py", line 4, in <module>
  File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
  File "openpyxl\workbook\workbook.py", line 9, in <module>
  File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
  File "openpyxl\worksheet\_write_only.py", line 13, in <module>
  File "openpyxl\worksheet\_writer.py", line 23, in init openpyxl.worksheet._writer
ModuleNotFoundError: No module named 'openpyxl.cell._writer'
[12248] Failed to execute script 'main' due to unhandled exception!

我还试图通过conda重新安装openpyxl,但是没有什么改变。要构建的命令行是:

代码语言:javascript
复制
pyinstaller --onefile main_new.spec main.py

而规范文件是:

代码语言:javascript
复制
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None

a = Analysis(['main.py'],
             pathex=[],
             binaries=[],
             datas=[('./inputs/*.csv', 'inputs')],
             hiddenimports=[
             'openpyxl',
             'xlrd',
             'xlswriter'
             ],
             hookspath=[],
             hooksconfig={},
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
         cipher=block_cipher)

exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='DESAT',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=True,
          disable_windowed_traceback=False,
          target_arch=None,
          codesign_identity=None,
          entitlements_file=None )

我怎样才能解决这个问题?

谢谢!

EN

Stack Overflow用户

回答已采纳

发布于 2022-09-28 15:02:34

错误是指openpyxl内部的'openpyxl.cell._writer‘。事实上,pyinstaller实际上能够找到openpyxl。我检查了内部,发现在pip环境中,我使用的是3.0.9版本,而在conda环境中,我使用的是3.0.10版本。降级到3.0.9,没有隐藏的进口或其他需要,它只是起作用。

票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73852273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档