使用 pyinstaller 时的环境配置文件?



我正在努力将一系列Python脚本打包到捆绑的EXE中。脚本使用配置解析器模块来处理 SQL 连接字符串(以及其他内容(。我正在寻找一种方法来创建三个版本的 EXE,一个用于我们提升到的每个环境。每个环境之间的唯一区别是 SQL 服务器地址。

我想出了如何在规范文件中包含文件、文件夹等,我想做的是调用 pyinstaller 并根据我正在构建的环境为其提供不同的 SPEC 文件。集成 SPEC 文件如下所示:

a = Analysis(['normalization_updater.py'],
binaries=[],
datas=[
('*.py', '.'),
('resources/config_int.cfg', 'resources/config.cfg')
],

对于生产:

a = Analysis(['normalization_updater.py'],
binaries=[],
datas=[
('*.py', '.'),
('resources/config_prod.cfg', 'resources/config.cfg')
],

换句话说,我想根据通过 glob 模式使用的 SPEC 文件重命名捆绑到 EXE 中的配置文件。

或者有没有更好的方法来处理pyinstaller EXE的功能切换?也许给它一个命令行开关?如果我没看错,文档说这是不可能的。

您可以将命令行选项传递给 Python 解释器。解释器采用许多命令行选项,但捆绑的应用程序仅支持以下选项:

  • v 在每次初始化模块时向 stdout 写入消息。

  • u 表示无缓冲的 stdio。

  • W
  • 和更改警告行为的选项:W 忽略或 W 一次或 W 错误。

不确定这是您需要的,但在这里如何使用单个规范文件,只需更改 start 中的一行

env='int'
a = Analysis(['normalization_updater.py'],
binaries=[],
datas=[
('*.py', '.'),
('resources/config_' + env + '.cfg', 'resources/config.cfg')
],

最新更新