通过 --onefile 将外部文件与 PyInstaller 捆绑
尝试使用 PyInstaller 创建单文件可执行文件 (.exe) 时 -- onefile 选项,用户可能会遇到合并外部文件(例如图像或图标)的困难。虽然此选项生成了方便、可移植的应用程序,但它通常无法找到有助于应用程序功能的其他文件。
为了解决此问题,以前版本的 PyInstaller 依靠设置环境变量来指定附加文件。然而,PyInstaller 最近的更新改变了这种方法。当前在 --onefile 模式下访问外部文件的方法是通过 sys._MEIPASS 变量。
以下代码演示了如何使用更新的方法访问外部文件:
import sys def resource_path(relative_path): """ Get absolute path to resource, works for dev and for PyInstaller """ try: # PyInstaller creates a temp folder and stores path in _MEIPASS base_path = sys._MEIPASS except Exception: base_path = os.path.abspath(".") return os.path.join(base_path, relative_path)
通过使用外部文件的相对路径调用此函数,无论您是从开发环境运行应用程序还是从 PyInstaller 生成的应用程序,都可以获得其绝对路径可执行文件。
以上是如何访问 PyInstaller --onefile 可执行文件中的外部文件?的详细内容。更多信息请关注PHP中文网其他相关文章!