2017-07-18 29 views
0

我正在將一系列Python腳本打包到捆綁的EXE中。腳本使用configparser模塊處理SQL連接字符串(等等)。我正在尋找一種方法來創建三個版本的EXE,一個用於我們提升的每個環境。每個環境之間的唯一區別是SQL服務器地址。使用pyinstaller時的環境配置文件?

我想出瞭如何在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') 
      ], 

換句話說,我要重命名的配置文件被捆綁成EXE基於不合規格的文件用於其通過glob模式。

或者有沒有更好的方式來處理功能與pyinstaller EXE的切換?也許餵它一個命令行開關?如果我正在閱讀這個權利the docs說這是不可能的。

您可以將命令行選項傳遞給Python解釋器。解釋器接受一個數字的命令行選項,但只有以下,支持的捆綁應用程式:

  • v至寫的消息的每一個模塊被初始化時間到stdout。

  • u用於未緩衝的stdio。

  • W和更改警告行爲的選項:W忽略或W一次或W錯誤。

回答

0

不知道這是你所需要的,但在這裏你可以如何使用一個單一的spec文件只是改變線開始

env='int' 

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