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.exec
。 gui.exec
找到 config.ini 很好,一切正常,但 gui.app
找不到并发送错误。
知道问题出在哪里吗?
由于您使用的是 PyQt5,如果您想获取可执行文件夹,您可以使用:
QtCore.QCoreApplication.applicationDirPath()
我有这个代码:
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.exec
。 gui.exec
找到 config.ini 很好,一切正常,但 gui.app
找不到并发送错误。
知道问题出在哪里吗?
由于您使用的是 PyQt5,如果您想获取可执行文件夹,您可以使用:
QtCore.QCoreApplication.applicationDirPath()