打包python web服务,编译成.so文件

jmpy

GitHub
安装

pip install jmpy3

打包文件夹

jmpy -i "xxx project dir" [-o output dir]

参数说明

py文件加密为so或pyd
python代码 加密|加固
参数说明:
    -i | --input_file_path    待加密文件或文件夹路径,可是相对路径或绝对路径
    -o | --output_file_path   加密后的文件输出路径,默认在input_file_path下创建dist文件夹,存放加密后的文件
    -I | --ignore_files       不需要加密的文件或文件夹,逗号分隔
    -m | --except_main_file   不加密包含__main__的文件(主文件加密后无法启动), 值为0、1。 默认为1

注意:只会将py文件编译,并且可能会报错,导致有的py文件没有转成so文件,但是不影响运行。

问题:
以flask项目为例,由于主函数main.py中存在如下代码导致不能编译成so文件(todo:或者说使用 -m 0 参数使之编译成so文件,但不知道如何启动运行)


if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5001)

解决:
可以将main.py做如下修改(注意不能注释掉,否则也不能编译成功),并同级目前新建一个start.py文件运行
main.py

def main():
    app.run(host='0.0.0.0', port=5001)

start.py

from main import main

if __name__ == '__main__':
    main()

此时可以使用 python start.py 运行。或者直接使用gunicorn也可以运行。

gunicorn -w 4 -b 0.0.0.0:8080 main:app
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值