[原创]pyinstaller 打包Django 项目在外部IDC部署
背景
公司的内部项目需要部署在不通外网的外部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 :
一些读取的文件和目录会和源码运行的路径不一致,需要手动补上, 源码中调整或根据运行方式做逻辑分支处理;

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
如何给列表降维?sum()函数的妙用
上个月,学习群里的 S 同学问了个题目,大意可理解为列表降维 ,例子如下: oldlist = [[1, 2, 3], [4, 5]] # 想得到结果: newlist = [1, 2, 3, 4, 5] 原始数据是一个二维列表,目的是获取该列表中所有元素的具体值。从抽象一点的角度来理解,也可看作是列表解压或者列表降维。 这个问题并不难,但是,怎么写才比较优雅呢? # 方法一,粗暴拼接法: newlist = oldlist[0] + oldlist[1] 这种方法简单粗暴,需要拼接什么内容,就取出来直接拼接。然而,如果原列表有很多子列表,则这个方法就会变得繁琐了。 我们把原问题升级一下:一个二维列表包含 n 个一维列表元素,如何优雅地把这些子列表拼成一个新的一维列表? 方法一的做法需要写 n 个对象,以及 n - 1 次拼接操作。当然不可行。下面看看方法二: # 方法二,列表推导式: newlist = [i for j in range(len(oldlist)) for i in oldlist[j]] 这个表达式中出现了两个 for 语句,在第一个 for 语句中,我们先取出原...
- 下一篇
从一个 Jira 字段不见了说起
忽然之间,一个问题出现了 有用户反馈 Jira 某个字段在某个问题的编辑界面没有了! 经过确认,该问题的编辑界面确实是没有这个字段了, 在 Jira 管理后台也没有找到这个字段。 难道这个字段被删掉了? 难道这个字段被删除了?开始有一丝慌张~ 和Jira 其它管理员沟通确认,最近也没有进行字段的更改; 查看系统的审计日志,也没有找到该字段被删除的记录。 是不是可以重新创建该字段? 既然这个字段不存在了, 那么是不是可以重新创建该字段呢? 尝试新建该字段,然而并没有找到相关的字段类型~ 该字段的具体问题类型是什么呢? 该字段创建的时间很久远了, 因而不太记得明确的问题类型, 只记得它是一个第三方插件提供的。 和同事沟通,从 IM 聊天记录中获得了这个字段的类型, 它是 Multiple Issue Link Picker 。 提供该字段的插件是什么呢? 既然知道是这个字段的类型, 那么提供该字段的插件是什么呢? 通过 Google 搜索,查到这个页面, 从而得知,提供该字段的插件是: Easy Links for JIRA。 这个插件出问题了? 在 Jira 插件管理界面,注意到该插件处...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,CentOS8安装Elasticsearch6.8.6
- 2048小游戏-低调大师作品
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7安装Docker,走上虚拟化容器引擎之路