假设我有三个脚本。 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 https://github.com/pyinstaller/pyinstaller/pull/2221,这应该是一个解决方法。
我的问题是,如何使用 pyinstaller 从选定位置读取导入,以便移动可执行文件?
逻辑:
使用以下命令编译 Main.pypyinstaller -F –onefile Main.py (15mb).
创建文件夹于C:\13\
所以exe看起来像C:\13\Main.exe
链接所有 exe 的位置C:\13
? with --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 https://stackoverflow.com/questions/7674790/bundling-data-files-with-pyinstaller-onefile:
if getattr(sys, 'frozen', False):
os.path.join(sys._MEIPASS, "C:\aa")
虽然正如你所看到的image https://i.stack.imgur.com/HpTCF.jpg,可以说我们想要 pandas,有几个文件可供选择......