python-3.x - 最小化 --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 中创建的程序可以共享)。
有没有人有这方面的经验,可以指出我正确的方向?
解决方案
推荐阅读
- java - 为什么当消息正文不是时 JAX-RS 参数为空?
- javascript - 在匿名函数中获取函数的函数名
- c# - 在 ASP.NET MVC 中按数字搜索
- react-native - Expo 的 OTA 更新是否会在从商店全新下载后首次开放时启动?
- dart - 没有小部件时如何伪造上下文?
- java - Spring Batch 中的复制作业
- android - 启动时调试 apk 的 Gradle 任务
- drools - 如何更改事实参数的类型(字符串为双精度)以在 Drools 中进行正确比较?
- angular - 如何通过 PIPE 中的正则表达式以 4 角分割字符串?
- graphql - 在 GraphQLError 上重试获取