【问题标题】:PyInstaller - ImportError: No module named win32apiPyInstaller - ImportError:没有名为 win32api 的模块
【发布时间】:2012-07-10 09:49:53
【问题描述】:

我正在尝试使用带有默认选项的 PyInstaller 将 Python 项目(在 Windows XP 上使用 Python 2.7)编译为 EXE。当我尝试运行 EXE 时,我收到以下消息:

PyInstaller - ImportError: 没有名为 win32api 的模块

我将 win32api 路径添加到 windows PATH 环境变量(我确实安装了 Python Win32 扩展),但它不起作用。我对此很陌生,对所有选项等有点不知所措,我真的不知道从哪里开始(或者什么信息对解决这个问题有用。)我认为这是我的一些小事失踪,但我没有发现任何人在网上遇到这个问题,任何帮助将不胜感激。

【问题讨论】:

  • 您使用的是哪个版本的 PyInstaller?
  • PyInstaller -v 返回“2.0dev-”。我今天下载了最新的开发版本,因为网站说当前版本对于 Windows/OSX 有太多错误?
  • 刚刚尝试了以前版本的 PyInstaller,我得到了同样的错误。
  • 奇怪 - 我承认我自己没有看到这个错误,所以我真正能做的就是猜测。我自己仍在使用 v1.5.1,因为我快速使用了 2.0-dev 版本,但无法让它工作。您在 Python 项目中使用了哪些依赖项(例如 wxPython、PyQt、Tkinter、django 等,如果有的话)?您可以使用 pyinstaller 构建一个只打印“hello world”的可执行文件吗?如果可以,请尝试删除项目的部分内容并重新构建可执行文件以查看错误是否仍然存在。也许这会帮助您缩小导致问题的范围。
  • 嗯,感谢您的调查。我会试试看;我的项目一直在使用 PyQt(这几乎是不可能删除的),以及用于 USB 数据采集板的库、许多串行通信的东西,以及 OpenCV。我的猜测是导致它的可能是 PyQt 或 OpenCV,但我会尝试将一些基本的东西放在一起,看看是否有效。

标签: python pyinstaller


【解决方案1】:

好的,我的一个模块中的“import os”似乎导致了这个问题。我没有运气让它成功使用 win32api 模块,但由于这仅用于设置程序名称,我只是将其注释掉,这个特定问题得到了解决。感谢卢克的帮助!

【讨论】:

  • 很高兴听到您设法找出导致问题的原因。