【问题标题】:How to generate an executable from an AWS-chalice application?如何从 AWS-chalice 应用程序生成可执行文件?
【发布时间】:2021-01-08 18:22:52
【问题描述】:

我有一个AWS-chalice 项目,我想从这个项目中生成一个可执行文件。

所以我没有运行chalice local 来启动本地服务器,而是调用可执行文件。

【问题讨论】:

    标签: python chalice


    【解决方案1】:

    我想出了这个解决方案,基于Pyinstaller

    1. 手动注入环境变量
    2. 手动启动本地服务器
    3. 手动拦截和处理特殊事件(如 SQS、Cron 等)
    4. Pyinstaller编译代码

    app.py的末尾调用此代码:

    import os
    from chalice.cli import CLIFactory
    from chalice.local import LocalDevServer
    def start_standalone(app):
        stage = os.environ.get("stage", "dev")
        print(f"initializing standalone server: {stage}")
        factory = CLIFactory(project_dir=os.getcwd(), debug=True, environ=os.environ, profile="dev")
        config = factory.create_config_obj(
            chalice_stage_name=stage
        )
        os.environ = {**os.environ, **config.environment_variables}
    
        host = os.environ.get("host", '127.0.0.1')
        port = os.environ.get("port", 8000)
        s = LocalDevServer(app, config=config, host=host, port=port)
        s.serve_forever()
        #handle_special_events(app) # to handle SQS and Cron; didn't include the code as it is not the main goal of this question
    

    在此阶段,您可以运行 python app.py 以确保您的更改有效。

    然后使用Pyinstaller运行pyinstaller -F --add-data="./.chalice/config.json:.chalice" app.py

    PS:您可能希望将有关环境变量的部分移至app.py 的开头,以便在初始化时使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多