微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从 AWS-chalice 应用程序生成可执行文件?

如何解决如何从 AWS-chalice 应用程序生成可执行文件?

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

因此,我没有运行 const ProductDetails = () => { const [activeIndex,setActiveIndex] = useState(0); const [products,setProducts] = useState([ { _id: "1",title: "Nike Shoes",src: [ "https://www.upsieutoc.com/images/2021/01/07/img2.png","https://www.upsieutoc.com/images/2021/01/07/img3.png","https://www.upsieutoc.com/images/2021/01/07/img4.png",],},]); return ( <Container> <Row> {products.map((item) => ( <Colsm6 key={item._id}> <ProductdetailsPic> <Sync1> <Item> <img src={item.src[activeIndex]} alt="" /> </Item> </Sync1> <Sync2> {item.src.map((img,i) => ( <Item> <Itempro> <img src={img} className={i === activeIndex ? 'active' : null} alt="" onClick={() => setActiveIndex(i)} /> </Itempro> </Item> ))} </Sync2> </ProductdetailsPic> </Colsm6> ))} <Prosdetleft></Prosdetleft> </Row> </Container> ); }; export default ProductDetails; 来启动本地服务器,而是调用可执行文件

解决方法

我想出了这个基于 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 的开头,以便在您的初始化中使用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?