Pyinstaller打包Django项目
1. 安装pyinstaller
pip install pyinstaller
2. 介 绍
PyInstaller读取您编写的 Python 脚本。它会分析您的代码以发现您的脚本需要执行的所有其他模块和库。然后它收集所有这些文件的副本——包括活动的 Python 解释器!– 并将它们与您的脚本放在一个文件夹中,或者可以选择放在一个可执行文件中。
对于绝大多数程序,这可以通过一个简短的命令来完成,
pyinstaller myscript.py
或添加一些选项,例如作为单文件可执行文件的窗口应用程序,
pyinstaller --onefile --windowed myscript.py
您将捆绑包作为文件夹或文件分发给其他人,他们可以执行您的程序。对于您的用户来说,该应用程序是独立的。他们不需要安装任何特定版本的 Python 或任何模块。他们根本不需要安装 Python。
3. 查找程序需要的文件
您的脚本还需要哪些其他模块和库才能运行?(这些有时被称为它的“依赖关系”。)
PyInstaller 会查找 import
脚本中的所有语句。它会找到导入的模块并在其中查找 import
语句,以此类推,直到它拥有脚本可能使用的完整模块列表。
某些 Python 脚本以PyInstaller无法检测到的方式导入模块:例如,通过使用__import__()
具有可变数据的函数、使用imp.find_module()
或sys.path
在运行时操作值。如果您的脚本需要PyInstaller不知道的文件,您必须帮助它:
- 可以编辑
.spec
文件。 这是PyInstaller在您第一次为脚本运行它时编写的规范文件。 在规范文件中,您可以告诉PyInstaller关于您的脚本所特有的代码模块。
4. 使用 Pyinstaller
4.1 制作 .spec
文件
进入项目目录,执行命令:
pyi-makespec -option manage.py
option:
-D, --onedir:创建一个包含可执行文件的单文件夹包(默认)
-F, --onefile:创建一个只生成一个
.exe
文件 的包。–specpath DIR:用于存储生成的规范文件的文件夹(默认:当前目录)
-n NAME, --name NAME:分配给捆绑的应用程序和规范文件的名称(默认值:第一个脚本的基本名称)
例如:
pyi-makespec -F manage.py
在项目路径下,会生成一个 .spec
文件 .
# -*- mode: python ; coding: utf-8 -*-block_cipher = Nonea = Analysis(['manage.py'],pathex=['D:\\coding\\spider_django'],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')
4.2 修改 .spec
文件
在遇到 隐式导包(相关依赖),pyinstaller 无法识别的时候,可以将缺少的模块名添加到 .spec
文件中的 hiddenimports=[]
列表中。例如:
hiddenimports=[‘缺少的模块名’],幸运的是我这次在打包的时候,虽然有些警告,但是不影响运行。所以没有修改
.spec
文件。
5. 生成 .exe
文件
执行下面命令:
pyinstaller manage.spec
会生成build( 在build文件夹中生成一些日志文件以及工作文件 )、dist( 在dist文件夹中的是已经打包好的文件 ) 两个文件,
.exe
就在 dist 文件夹下。
6. 命令运行项目
进入dist文件(manage.exe文件同级目录下),cmd打开终端,运行下面命令:
manage.exe runserver --noreload
7. 运行 .exe
文件
再创建一个 .py
文件(用来运行项目的脚本) ——> run.py
import osos.system('manage.exe runserver --noreload')input()
再将 run.py
脚本打包。
pyi-makespec -F run.py # 生成.spec文件pyinstaller run.spec # 打包生成run.exe 文件双击run.exe 文件即可启动项目 # 在运行时,要注意将run.exe文件和manage.exe 文件在同级目录下,否则会报错“找不到manage.exe文件”。
Pyinstaller打包Django项目相关推荐
- 使用pyinstaller打包django项目
1.pyinstaller pip install pyinstaller /2制作项目的.spec文件 进入django项目所在路径,运行 pyi-makespec -D manage.py 在路径 ...
- 使用pyinstaller打包python_使用pyinstaller打包Python项目,python
00 前言 上一篇文章写的是使用百度aip实现一个图片转文字的小工具( https://blog.csdn.net/George_Clancy/article/details/105551872 ), ...
- Pyinstaller 打包 Pytest项目及资源文件
目录 前言 纯Python代码的打包 包含其他文件的打包 总结 前言 相比于cx-freeze和Nuitka,还是pyinstaller好用些,因此使用pyinstaller来生成独立的exe文件以供 ...
- 用Pyinstaller打包Scrapy项目问题解决!!!
这篇报废,这里的PyInstaller教程相信对大家会有用,其中会解决spider not found的问题,真正成功地打包Scrapy:https://blog.csdn.net/La_vie_es ...
- pyinstaller 打包 python3项目,遇到failed to execute script XXX 错误的解决方法
近日修改了之前一个使用pyinstaller可以成功打包的python3项目,在IDE中运行正常,但是打包以后运行exe却出现failed to execute script XXX 弹窗提示,无法正 ...
- python使用Pyinstaller打包整个项目
今天真的被Pyinstaller给坑到了!!! 本文利用spec文件进行对整个项目进行打包,直接输入命令打包也可以,但会出现比较多的问题. 1 .安装Pyinstaller pip install p ...
- 【Python】Python项目打包发布(一)(基于Pyinstaller打包多目录项目)
Python项目打包发布汇总 [Python]Python项目打包发布(一)(基于Pyinstaller打包多目录项目) [Python]Python项目打包发布(二)(基于Pyinstaller打包 ...
- 利用pyinstaller将python项目脚本打包成可执行文件
利用pyinstaller打包python项目 由于本文讲述还算比较详细,如果对pyinstaller有一定的了解,只需快速上手,可以直接跳到第四章结合实例进行操作. 1简介及安装pyinstalle ...
- pyinstaller打包原理,常见问题。
如果将Python代码使用pyinstaller打包成exe文件时,只有一个大的exe文件,很多人可能遇到,在本机上就已经不能运行了,有的情况好些,在本机可以运行,发给别人就无法正常运行.本文本就是分 ...
最新文章
- Dictionary泛型集合
- nginx 域名配置_nginx 一个域名配置多个vue项目
- STL源码剖析 数值算法 copy 算法
- php 什么函数获取ip,在PHP中获取ip地址的方法有哪些
- 保护系统 用数据库加密实现数据安全
- LeetCode 187. 重复的DNA序列
- linux rpm安装zabbix,CentOS 7上安装Zabbix Server 3.0 图文详解
- vscode怎么全局搜索_VS Code 新版本发布!支持远程开发、同步设置等新特性
- php mysql复杂查询_PHP MySQL如何做更复杂的查询
- 简易发号SQL,可用于生成指定前缀自增序列,如订单号,生成优惠券码等
- windows service 2008 R2 升级 sp1遇到的问题
- 新手必须要注意的编程范式
- 软文诊断50期: 百度账号有什么推广功能?能编辑软文吗?
- Ubuntu16安装Nvidia驱动(GTX1060显卡)
- 基于微信小程序开发的在线答题系统
- 问题日志-简易css时间轴特效
- 大数据入门教程系列之Hive内置函数及自定义函数
- 使用源码部署CITA(Ubuntu18.0.4 | VMware)
- 台式计算机硬盘英寸,台式电脑硬盘和笔记本电脑硬盘有区别吗?台式机硬盘报价一般是多少?...
- mac 打印机设置成黑白打印