[原创]pyinstaller 打包Django 项目在外部IDC部署


声明:本文转载自https://my.oschina.net/kuakexing123/blog/3038480,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

背景

公司的内部项目需要部署在不通外网的外部IDC,对依赖包比较多的python 工程部署来说, 坑还是比较多的, 这里简要记录采坑过程;

0x0 将Django 项目整体打包成和执行目录 经筛选调研选择使用pyinstaller, 需求是外部IDC CentOS7.2 部署前后端分离项目,前端只要打包静态文件丢进nginx share 目录就好了,后端是DRF, 使用编译安装的python3.6.3; 只测试了linux 版的pyinstaller;

1.安装pyinstaller

pip install pyinstaller

坑1: 如果你的python3 是编译安装的, 编译时参数没指定 --enable-shared , 则无法使用,需要重新编译,带上这个参数;

2. 对入口文件执行:

pyi-makespec -D manage.py
编译
pyinstaller manage.spec

会生成dist/manage , 所有依赖会统统打包到这个目录, 运行使用:

./manage runserver 0.0.0.0:8000
坑2:

django 工程可能隐式import很多依赖,需要修改生成的manage.spec hiddenimport 数组, 需要根据报错补进去,具体从setting.py 中查找;

坑3 :

一些读取的文件和目录会和源码运行的路径不一致,需要手动补上, 源码中调整或根据运行方式做逻辑分支处理;

本文发表于2019年04月18日 09:00
(c)注:本文转载自https://my.oschina.net/kuakexing123/blog/3038480,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 2211 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1