【问题标题】:Compile a python app with external config.py that we can edit使用我们可以编辑的外部 config.py 编译一个 python 应用程序
【发布时间】:2020-07-05 00:33:53
【问题描述】:

我试图了解如何将config.py 文件与一个非常基本的应用程序一起使用,该应用程序允许config.py 文件位于已编译的 .exe 应用程序之外。

这是我的文件结构。

/ config.py

/ sayhello.py

[sayhello.py]

import config as config

if __name__ == "__main__":
    print (config.CHARACTERS['PLAYER_1'] + ", I'd like for you to meet " + config.CHARACTERS['PLAYER_2'] + ".")
    print (config.CHARACTERS['PLAYER_2'] + ", this is your cousin " + config.CHARACTERS['PLAYER_1'] + ".\n")

[config.py]

# Define player names
CHARACTERS = {
    'PLAYER_1': "Abby",
    'PLAYER_2': "Billy"
}

我在 Visual Studio Code 中运行脚本,输出如下所示。

Abby, I'd like for you to meet Billy.
Billy, this is your cousin Abby.

我运行pyinstaller sayhello.py 并且我有一个应用程序的构建/分布。我执行sayhello.exe,输出如预期的那样,太棒了。

Abby, I'd like for you to meet Billy.
Billy, this is your cousin Abby.

config.py 文件在哪里供我编辑以便我可以更改角色名称?

【问题讨论】:

    标签: python configuration


    【解决方案1】:

    我找到了configparser 并找到了可行的解决方案。

    [sayhello.py]

    from configparser import ConfigParser
    
    parser = ConfigParser()
    parser.read('config.ini')
    
    player_one = str(parser.get('CHARACTERS', 'PLAYER_1'))
    player_two = str(parser.get('CHARACTERS', 'PLAYER_2'))
    
    if __name__ == "__main__":
        print (player_one + ", I'd like for you to meet " + player_two + ".")
        print (player_two + ", this is your cousin " + player_one + ".\n")
    

    [config.ini]

    [CHARACTERS]
    PLAYER_1 = Abby
    PLAYER_2 = Billy
    

    我还找到了auto-py-to-exe,它使我能够将我的config.ini 文件添加到我的构建中。该文件被重命名为config.py。我可以在记事本中打开config.py,编辑名称,安全,运行,名称按预期更新。

    如果有更好的方法,我很乐意学习。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多