数字北京行天下,广舜堂,信誉群
环境为:win7 + python3.6 + django (2.1.10) + pyinstaller (3.5)
注意: 这里的pyinstaller,笔者是直接使用pip安装,中间会安装一些其他的插件
进入到项目的所在的路径中,执行如下命令生成 .spec文件,文件位于当前路径下
pyi-makespec -d manage.py
# -*- mode: python ; coding: utf-8 -*- block_cipher = none a = analysis(['manage.py'], pathex=['f:\\work\\code\\project_1'], binaries=[], datas=[], hiddenimports=[], hookspath=[], runtime_hooks=[], excludes=[], win_no_prefer_redirects=false, win_private_assemblies=false, cipher=block_cipher, noarchive=false) pyz = pyz(a.pure, a.zipped_data, cipher=block_cipher) exe = exe(pyz, a.scripts, [], exclude_binaries=true, name='manage', debug=false, bootloader_ignore_signals=false, strip=false, upx=true, console=true ) coll = collect(exe, a.binaries, a.zipfiles, a.datas, strip=false, upx=true, upx_exclude=[], name='manage')
然后运行如下命令,生成打包的exe文件
pyinstaller manage.spec
打包程序的运行方式: 在manage.exe的位置打开cmd,输入manage.exe runserver运行服务即可
到此就是打包程序的步骤,但是运行服务时会出现一些问题,对于笔者遇到的问题就在下面描述一下
这是因为django有些module不会自动收集,需要手动添加
解决方法:在manage.spec文件中修改hiddenimports=[]为hiddenimports=['users','users.apps','sql_server.pyodbc.compiler'],提示缺少什么module就在此处添加什么。(但是很恶心人的是每次只会提示一个错误,需要一直修改manage.spec文件,然后重新打包,笔者在这里打包了十几次才算完成,具体还是看个人的情况)
解决方法:根据错误的提示消息,把项目中的模板文件templates拷贝到相应的位置,刷新页面即可。
参考的stackoverflow 网址:
首先在项目中的settings文件中添加如下代码,其中static是笔者项目中的静态文件位置,static_root是static下的一个空文件夹,然后执行python manage.py collectstatic命令将静态文件收录到static_root中:
static_root = os.path.join(base_dir, 'static', 'static_root')
然后在urls.py中添加如下代码:
from django.conf.urls import static from project_1 import settings urlpatterns += static.static(settings.static_url, document_root=settings.static_root)
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
新手学习Python2和Python3中print不同的用法
Python基于os.environ从windows获取环境变量
网友评论