如何解决如何从 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 的解决方案:
- 手动注入环境变量
- 手动启动本地服务器
- 手动拦截和处理特殊事件(如 SQS、Cron 等)
- 使用 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 举报,一经查实,本站将立刻删除。