我正在使用 PyInstaller 将我的多模块 Python 应用程序捆绑到一个one-file
exe 中。这个应用程序的入口点是一个扩展模块win32serviceutil.ServiceFramework
——所以它是作为 Windows 服务运行的。当我尝试使用此应用程序提供用户可配置的记录器 ini 文件时出现问题。在我的主模块中,我设置了记录器,
log_file_path = path.join(path.dirname(path.abspath(__file__)), 'logging.conf')
logging.config.fileConfig(log_file_path)
我的 PyInstaller 命令如下:
pyinstaller -F <main-file>.py -n <exe-name> --hidden-import=win32timezone --add-data "logging.conf;."
打包后,我将生成的 exe 安装为服务,并成功注册为 Windows 服务。但是,当我尝试启动它时,它失败了。
有趣的是,在我配置的位置创建了一个空日志文件。所以这意味着 1) 应用程序确实读取了我的配置文件,并且 2) 这里没有权限问题。有没有人试图建立这样的东西来帮助阐明我可能会错过的东西?