【发布时间】:2018-05-16 13:01:03
【问题描述】:
假设我有三个脚本。 Main.py(包含所有导入)、1.py(随机脚本)、2.py(随机脚本)。
pyinstaller -F --onedir Main.py (80mb)
pyinstaller -F --onedir 1.py (80mb)
pyinstaller -F --onedir 2.py (80mb)
这会创建 3 个文件夹,然后我将 1.exe 和 2.exe 复制到包含所有依赖项的主文件夹,并且运行良好。
存在两个问题:
问题在于尺寸。一个文件减少到 30mb,一个文件夹保持在 80mb
更重要的是,exe 无法离开该文件夹。我不得不求助于在 Python 中使用快捷方式。
我正在关注this,据说这是一种解决方法。
我的问题是,如何使用 pyinstaller 从选定位置读取导入,以便移动可执行文件?
逻辑:
使用pyinstaller -F –onefile Main.py (15mb).编译Main.py
在C:\13\ 创建文件夹,这样exe 看起来像C:\13\Main.exe
链接C:\13的所有exe文件? --runtime-tmpdir PATH
我很难找到有关从 exe 甚至 "one dir" 文件夹中获取导入的文档。从一开始就有很多关于导入的内容,但从选定位置获取导入的内容不多,因此我可以在任何地方运行 exe。更重要的是,在 pyinstaller 中甚至很难找到模块,除非对其进行反编译,从而增加了这种混乱。
也许……
pyinstaller -F --runtime-tmpdir C:\13 --onefile 2.py
pyinstaller -F --runtime-tmpdir C:\13 --onedir 3.py
虽然对我来说没有创建目录。如何从选定位置获取导入。
另一个可能的solution:
if getattr(sys, 'frozen', False):
os.path.join(sys._MEIPASS, "C:\aa")
尽管您可以在 image 中看到,但可以说我们想要 pandas,但有几个文件可供选择...
【问题讨论】:
-
来自 pyinstaller 的文档有详细的章节介绍如何打包多个共享相同依赖项的 exe:pyinstaller.readthedocs.io/en/stable/…
-
@FlorentB。 “此功能在 PyInstaller 3.0 版本中被破坏”
标签: python pandas selenium compression pyinstaller