问题:fastapi框架开发的项目代码如何加密部署?
解决:使用pyarmor对python代码进行混淆加密
方法:
1、pyarmor9.2.3+ 加密
pyarmor gen -O dist --obf-module 0 --obf-code 0 --no-wrap app
- --obf-module 0 :禁用模块级混淆
- --obf-code 0 :禁用函数级混淆
- --no-wrap :禁用wrap模式
注:Pyarmor的高级别加密(特别是模块混淆和函数混淆)可能会导致某些Python代码在运行时出现内存访问错误,尤其是涉及到动态导入、反射或特定库(如SQLAlchemy)时。通过降低加密级别,可以在保持基本加密保护的同时,确保代码的稳定性和可靠性。
2、测试运行
cd dist
python app/main.py
注:如果有.env、static、template等文件或文件夹则需要手动复制到dist目录下
如果项目不是使用根路径导入模块的话,则需要配置pyathpath
$env:PYTHONPATH="d:\Projects\app-server\dist"
或将生成的pyarmor_runtime_000000文件夹移动到dist/app目录下
2、Docker 部署
docker build -t app-server .
docker run -p 9090:9090 app-server