在EXE中运行Python应用程序时,我得到..'无法识别vba_extract.py

2024-10-05 10:01:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经使用pyinstaller从pythonscripy创建了一个.EXE文件

部分程序应获取xlsm文件并将其VBA提取到bin文件。我使用.spec文件将xlsm文件传递给EXE:

datas=[('gen_ClipFile_V3p1.xlsm','.')],

然后,当程序从xlsm文件中提取“vbaProject.bin”时

我得到一个错误:

'vba_extract.py' is not recognized as an internal or external command

我的相关代码:

import xlsxwriter
import os
from pathlib import Path


# a function called by tkinter file open
def compareDesigns(self):

# find the EXE temporary working directory path
    bundle_dir = Path(getattr(sys, '_MEIPASS', Path.cwd()))
    strbundle_dir = str(bundle_dir)
    XLSMtoExtract = os.path.join(strbundle_dir, 'gen_ClipFile_V3p1.xlsm')
    os.system("vba_extract.py" + XLSMtoExtract)

我的等级库文件包括:

datas=[('gen_ClipFile_V3p1.xlsm','.')],
hiddenimports=['matplotlib', 'pathlib', 'time', 'sys', 're', 'operator', 'numpy', 'mplcursors', 'collections', 'xlsxwriter', 'os', 'tkinter', 'pyinstaller'],

我确实设法在我的机器上运行该应用程序,但其他使用不同机器的用户报告此错误

我相信我应该在exe临时区域中找到vba_extract.py路径并引用它,但我知道如何找到它


Tags: 文件pathpyimport程序osdirextract
1条回答
网友
1楼 · 发布于 2024-10-05 10:01:48

如果xlsxwriter安装正确,则应将vba_extract.py添加到Windows%PATH%。但是,在主脚本运行的同一环境中,这可能不可用

有些建议与建议的顺序相反:

  1. 找出路径问题
  2. 忽略路径问题,直接在程序中包含vba_extract.pycode。它不是很大,如果知道目标xlsm文件没有问题,您可以省略很多异常处理
  3. 忽略宏提取部分,仅随代码一起提供VBA宏。然而,这也可能导致路径问题
  4. 您还可以在程序中以十六进制/文本格式存储宏,并随时将其转换回二进制文件

相关问题 更多 >

    热门问题