MacOS 中 python 二进制 *app 中 config.ini 的真实路径

Real path to config.ini in python binary *app in MacOS

我有这个代码:

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、第二个 gui.execgui.exec 找到 config.ini 很好,一切正常,但 gui.app 找不到并发送错误。

知道问题出在哪里吗?

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

QtCore.QCoreApplication.applicationDirPath()