flask项目编译成pyd打包成exe

项目目录结构:
在这里插入图片描述
打包时结构:
在这里插入图片描述
首先安装Pyinstaller和Cython.

第一步,将py文件编译为pyd

在app目录下新建setup.py,内容如下:

from distutils.core import setup
from Cython.Build import cythonize

setup(
    ext_modules=cythonize(["get_data.py",
                           "common.py",
                           "api.py",
                           "ae_algorithm.py",
                           "models.py",
                           "importData.py"]
                          ))

在app目录下打开 dos窗口,执行python setup.py build_ext --inplace,生成build和app目录,在app/app目录下生成pyd文件,删除app目录下的c文件和py文件(保留__init__的),将app/app下的pyd文件复制到
app下。

第二步,打包成exe

在core下执行 pyinstaller -F manage.py,其中manage为工程入口(类比于springboot的启动类),会生成dist目录,dist目录下有manage.exe,完成。

第三步,相关报错及另一种打包方式

①:执行完第二步,会产生manage.spec文件,如果manage.exe在启动时报ModuleNotFoundError: No module named ‘xxx’,将xxx加入到manage.spec的hiddenimports=[‘xxxx’,‘yyy’’]中,(或打包命令增加pyinstaller -F manage.py --hidden-import xxx),执行Pyinstaller manage.spec。
②:
app/app和app/build可备份后删除。
Ⅰ–执行pyinstaller manage.spec,在dist下会生成manage目录。附属文件如jar包、requirements.txt文件也加到manage下。如果manage/app下pyd文件缺失,则将第一步获得的文件加入到该目录,然后执行manage下的manage.exe,如果库缺失,则将\Python\Lib\site-packages下对应的库复制到manage下,执行manage.exe直到正确启动。
Ⅱ–封包,使用nigma Virtual Box,将主进程设置为manage.exe,将mange下其他文件设置为文件树。PS:该种方式打包比较大,大概是第二步的2倍大小。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值