Pyinstaller ModuleNotFoundError和仅Windows缺少子模块

时间:2019-04-18 18:32:20

标签: python windows pyinstaller

我正在尝试打包python应用程序以用于跨平台使用。它基本上是用于本地主机的小型Web服务器(烧瓶)。

到目前为止,我已经解决了一些小问题,可以将其打包为Linux(ubuntu)和OSX。但是,窗户给我带来了一些麻烦。构建正常,但是在运行时,我得到ModuleNotFoundError,而缺少的模块是我的应用程序(顶级程序包)的主要名称。我使用默认的“单个文件夹”模式在两个平台上使用基本上相同的构建命令。

一个非常明显的问题是,在Linux的输出文件夹中,我可以看到所使用模块的所有可用文件夹,例如,我看到文件夹“ cairo”和“ psutil”以及其中的大约20个文件夹。导出目录。但是,在Windows中,输出文件夹中有ZERO文件夹。有一些库文件,例如_bz2.py和_hashlib.py,但是似乎大多数内容都丢失了。同样,Linux上的输出文件夹约为100MB,而Windows上的输出文件夹约为10MB。显然,在Windows上运行pyinstaller时似乎找不到程序依赖的很大一部分,但是由于这是如此明显,我怀疑它是一个错误,我觉得这可能是我在某个地方缺少的一些简单选项。

(有趣的是,我可以将输出文件夹中的文件夹从Linux复制到Windows,这将错误更改为ImportError,无法导入名称(未知位置)。很明显,Windows将无法读取某些.so文件在那些文件夹中,所以我真的没想到它可以工作)

我尝试过的事情:

  • 使用单个文件(-F)模式
  • 使用--hidden-import X表示缺少的模块

请告诉我是否应该共享每个操作系统上确切的pyinstaller命令和输出文件的链接。感谢您阅读我的文章的时间。

0 个答案:

没有答案