我正在将一系列Python脚本打包到捆绑的EXE中。脚本使用configparser模块来处理SQL连接字符串(以及其他内容)。我正在寻找一种方法来创建三个版本的EXE,一个用于我们提升的每个环境。每个环境之间的唯一区别是SQL服务器地址。
我想出了如何在spec文件中包含文件,文件夹等,我想要做的是调用pyinstaller并根据我正在构建的环境提供不同的SPEC文件。对于集成SPEC文件,这样的东西:
a = Analysis(['normalization_updater.py'],
binaries=[],
datas=[
('*.py', '.'),
('resources/config_int.cfg', 'resources/config.cfg')
],
和PROD:
a = Analysis(['normalization_updater.py'],
binaries=[],
datas=[
('*.py', '.'),
('resources/config_prod.cfg', 'resources/config.cfg')
],
换句话说,我想根据通过glob模式使用哪个SPEC文件将捆绑的配置文件重命名为EXE。
或者有没有更好的方法来处理使用pyinstaller EXE的功能切换?也许喂它命令行开关?如果我正在读这个权利the docs说这是不可能的。
您可以将命令行选项传递给Python解释器。解释器采用了许多命令行选项,但捆绑的应用程序仅支持以下选项:
v每次初始化模块时都向stdout写入一条消息。
u为无缓冲的stdio。
W和更改警告行为的选项:W忽略或W一次或W错误。
答案 0 :(得分:0)
不确定这是你需要的,但在这里你如何使用单个spec文件只是改变开始的一行
env='int'
a = Analysis(['normalization_updater.py'],
binaries=[],
datas=[
('*.py', '.'),
('resources/config_' + env + '.cfg', 'resources/config.cfg')
],