django python3.7项目打包成exe_Python3.5 django1.11用pyinstaller打包的一些操作问题

本文记录了使用Python3.5和django1.11.5,通过pyinstaller将Django项目打包成exe文件的过程,包括遇到的ImportError问题及解决方案,如设置隐藏导入、修改文件结构、处理静态文件和模板问题。
摘要由CSDN通过智能技术生成

因为项目是给不懂Python或者不会安装Python环境的人用的,不可能给每个人都安装环境,所以选择用Pyinstaller把django打包成exe文件,然后在电脑上直接运行的办法。

调试环境:Windows10,Python3.5,django1.11.5,pyinstaller3.3.

以下是遇到的各种问题,凭记忆写的,可能不是很详细:

tips:每次打包完成之后如果还是和之前一样的错误,建议先删除掉build和dist文件夹(如果删除失败很可能是你命令行在那个文件夹里面,因为你刚刚运行了manage.exe),然后再用 pyinstaller manage.py 打包,否则有时候你改了一些其他的文件,但是他不会识别到(因为manage.py文件并没有发生变化),而是使用之前的文件直接生成,所以会产生和之前同样的错误。

我开始时候的目录结构:

/web_manage

/image # (存放用户上传目录文件,本应叫media,但是没来得及改)

/opeartion # (唯一的一个app,名字就是operation)

/static # (存放js,css,image等静态文件目录)

/templates # (模板文件目录)

/utils # (存放一些额外的自己写的函数之类的文件目录)

/web_manage (存放settings文件目录)

settings.py

urls.py

wsgi.py

db.sqlite3 # (数据库文件)

manage.py # (这就不说了吧)

1.ImportError:web_manage.settings is not a module (也许是package?)。

web_manage是我的project的名字,但是也是settings父文件夹的名字(pycharm新建项目适合没有设置好的锅)。

综合之前的情况考虑,这个可能是我的文件夹重名了,所以无法找到settings文件。

所以解决方案:

改文件夹的名字,不能一样。因为settings父文件夹会有很多引用,所以不能乱改,就改 project 文件夹的name。然后担心还是有问题,所以在manage.py文件里面import sys 之后加了两行代码:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

NEW_DIR = os.path.join(BASE_DIR, 'web_manage')

这段代码的作用是,把和该py文件同目录下的web_manage文件夹加到Python的搜索路径下去。

再次pyinstaller,就不是这个错误了,下一个。

2.ImportError: no module named django.contrib.admin.apps

这个问题很重要,因为是大部分阻挡我前进的原因。和这个一起遇到的还有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值