python - 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.exec
。gui.exec
找到 config.ini 很好,一切正常,但gui.app
不能发送错误。
知道有什么问题吗?
解决方案
由于您使用的是 PyQt5,因此如果您想获取可执行文件夹,您可以使用:
QtCore.QCoreApplication.applicationDirPath()
推荐阅读
- node.js - nodejs 请求模块在本地主机上返回 ECONNREFUSED
- ios - Swift 4 - UIActivityViewController 共享到 Outlook 主题和标题
- azure-language-understanding - 'Is Desired Intent' 在 Power Automate LUIS 连接器中返回错误值
- javascript - 从可能为空的多个变量中进行 jQuery 选择
- quarkus - Quarkus 项目一旦覆盖到多模块形式,在到达现有端点时得到 404
- excel - 如何放置一个输入框,用户输入的任何内容都会放入公式中?
- excel - 如何根据单元格值调用宏?
- sql - 当只知道一个日期而另一个日期在另一行时,SQL 派生日期范围
- c# - C# - 在三元运算符中呈现部分
- javascript - 如何在包含图片的 Javascript 数组中插入 HTML 标签?