[原创]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业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
死磕 java集合之CopyOnWriteArraySet源码分析——内含巧妙设计
问题 (1)CopyOnWriteArraySet是用Map实现的吗? (2)CopyOnWriteArraySet是有序的吗? (3)CopyOnWriteArraySet是并发安全的吗? (4)CopyOnWriteArraySet以何种方式保证元素不重复? (5)如何比较两个Set中的元素是否完全一致? 简介 CopyOnWriteArraySet底层是使用CopyOnWriteArrayList存储元素的,所以它并不是使用Map来存储元素的。 但是,我们知道CopyOnWriteArrayList底层其实是一个数组,它是允许元素重复的,那么用它来实现CopyOnWriteArraySet怎么保证元素不重复呢? CopyOnWriteArrayList回顾请点击【死磕 java集合之CopyOnWriteArrayList源码分析】。 源码分析 Set类的源码一般都比较短,所以我们直接贴源码上来一行一行分析吧。 Set之类的简单源码适合泛读,主要是掌握一些不常见的用法,做到心里有说,坐个车三五分钟可能就看完了。 像ConcurrentHashMap、ConcurrentSkipL...
-
下一篇
从一个 Jira 字段不见了说起
忽然之间,一个问题出现了 有用户反馈 Jira 某个字段在某个问题的编辑界面没有了! 经过确认,该问题的编辑界面确实是没有这个字段了, 在 Jira 管理后台也没有找到这个字段。 难道这个字段被删掉了? 难道这个字段被删除了?开始有一丝慌张~ 和Jira 其它管理员沟通确认,最近也没有进行字段的更改; 查看系统的审计日志,也没有找到该字段被删除的记录。 是不是可以重新创建该字段? 既然这个字段不存在了, 那么是不是可以重新创建该字段呢? 尝试新建该字段,然而并没有找到相关的字段类型~ 该字段的具体问题类型是什么呢? 该字段创建的时间很久远了, 因而不太记得明确的问题类型, 只记得它是一个第三方插件提供的。 和同事沟通,从 IM 聊天记录中获得了这个字段的类型, 它是 Multiple Issue Link Picker 。 提供该字段的插件是什么呢? 既然知道是这个字段的类型, 那么提供该字段的插件是什么呢? 通过 Google 搜索,查到这个页面, 从而得知,提供该字段的插件是: Easy Links for JIRA。 这个插件出问题了? 在 Jira 插件管理界面,注意到该插件处...
相关文章
文章评论
共有0条评论来说两句吧...