首页 > 解决方案 > 最小化 --onedir 选项的 pyinstaller 文件

问题描述

我一直在使用 pyinstaller 将我的代码“传播”到没有安装 python 3.x 的机器中,所有这些机器都在同一个网络中。这是一个很棒的软件,但即使在阅读了非常广泛的文档之后,我仍在努力为此目的简化 .exe 的创建。

理想情况下,我只想将 .exe 文件转发给用户(来自 --onedir 选项,而不是 --onefile ,因为它会很大)。我设法创建了一个运行时挂钩来搜索网络中的 dll:

ctypes.windll.kernel32.SetDllDirectoryW('W:\\Python\\dll')

除了:VCRUNTIME140.dll、python37.dll 和 pywintypes37.dll。这非常方便,并且已经节省了大量空间。尽管如此,我还没有设法为 .pyd 文件或文件夹做同样的事情。我尝试在运行时将 PATH 设置为指向外部网络文件夹,但这也不起作用:

sys.path.append('W:\\Python\\pyd')

我考虑的另一个选择是将所有 .pyd 文件放入一个 zip 文件夹(如 base_library.zip)并为其创建一个 PATH。也没有用。

我确定我只是错过了一些简单(或复杂?)的东西。也许浏览 pyinstaller 源代码以更改那里的文件夹,但我尝试通过一些关键字搜索它无济于事。

我想强调一下,我不是试图将文件组织到“dist”文件夹中更好的文件夹中,而是在网络中搜索文件(它可能是机器中其他地方以前预装的文件夹,所有不同的地方我在 python 中创建的程序可以共享)。

有没有人有这方面的经验,可以指出我正确的方向?

标签: python-3.xdllpyinstallerpyd

解决方案


推荐阅读