如何始终在所在目录执行PyInstaller/Platypus编译的Python可执行文件
How to always execute PyInstaller / Platypus compiled Python executable in the directory where it is located
我有一个 python 脚本需要从它所在的文件夹中执行。我将它分发为 PyInstaller 编译的可执行文件(包装到 Linux 的 AppImage 中)。我可能会为 OSX 迁移到 Platypus,以便获得一个 .app 文件。
问题是双击时无法从正确的目录中执行可执行文件(因为 AppImage / .app 包向路径添加了一些文件夹)。
我想添加一个 os.chdir() 命令,以便它在所有平台上都转到正确的路径,无论 运行 是否作为 .py 文件,捆绑为 .exe,捆绑为.app,或捆绑为 AppImage。最好的方法是什么?
注意:我需要从正确的目录执行它的原因是一些日志/数据/配置文件位于那里。
我最终使用了完整路径,例如 Linux 上的 /opt/foobar 或 windows 上的 c:\opt\foobar。简单稳定的解决方案,唯一的缺点是用户可能需要管理员权限。
我有一个 python 脚本需要从它所在的文件夹中执行。我将它分发为 PyInstaller 编译的可执行文件(包装到 Linux 的 AppImage 中)。我可能会为 OSX 迁移到 Platypus,以便获得一个 .app 文件。
问题是双击时无法从正确的目录中执行可执行文件(因为 AppImage / .app 包向路径添加了一些文件夹)。
我想添加一个 os.chdir() 命令,以便它在所有平台上都转到正确的路径,无论 运行 是否作为 .py 文件,捆绑为 .exe,捆绑为.app,或捆绑为 AppImage。最好的方法是什么?
注意:我需要从正确的目录执行它的原因是一些日志/数据/配置文件位于那里。
我最终使用了完整路径,例如 Linux 上的 /opt/foobar 或 windows 上的 c:\opt\foobar。简单稳定的解决方案,唯一的缺点是用户可能需要管理员权限。