首页 > 解决方案 > MacOS 中 python 二进制 *app 中 config.ini 的真实路径

问题描述

我有这个代码:

def _read_config(self):
    config = configparser.ConfigParser()
    config.sections()
   # I tried 
    path_main = os.path.dirname(os.path.realpath(__file__))
   # and this after create exec file with pyinstaller nothing changed
    path_main = os.getcwd() 
    print(path_main)
    file = os.path.join(path_main, "config.ini")
    print(file)
    config.read(file)
    return config

当我使用终端在 MacOS 中运行代码时python gui.py,它会打印:

/Users/telos/Desktop/Telos-Monitor-Tool/client
/Users/telos/Desktop/Telos-Monitor-Tool/client/config.ini

但是当我这样做时pyinstaller --onefile --windowed gui.py,我收到 1 个应用程序文件,当我运行它时,我得到这个:

/Users/telos
/Users/telos/config.ini

但是一个文件 app 和 ``gui.py` 在同一个目录中。

所以我有一个错误,因为 Python 解析器找不到 config.ini。

正如评论建议我print(QtCore.QCoreApplication.applicationDirPath())在重新创建应用程序后使用,我有 2 个文件 1 gui.app, 2-nd gui.execgui.exec找到 config.ini 很好,一切正常,但gui.app不能发送错误。

知道有什么问题吗?

标签: pythonpython-3.xmacospyinstaller

解决方案


由于您使用的是 PyQt5,因此如果您想获取可执行文件夹,您可以使用:

QtCore.QCoreApplication.applicationDirPath()

推荐阅读