我正在尝试打包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文件在那些文件夹中,所以我真的没想到它可以工作)
我尝试过的事情:
请告诉我是否应该共享每个操作系统上确切的pyinstaller命令和输出文件的链接。感谢您阅读我的文章的时间。