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项目相关推荐

  1. 使用pyinstaller打包django项目

    1.pyinstaller pip install pyinstaller /2制作项目的.spec文件 进入django项目所在路径,运行 pyi-makespec -D manage.py 在路径 ...

  2. 使用pyinstaller打包python_使用pyinstaller打包Python项目,python

    00 前言 上一篇文章写的是使用百度aip实现一个图片转文字的小工具( https://blog.csdn.net/George_Clancy/article/details/105551872 ), ...

  3. Pyinstaller 打包 Pytest项目及资源文件

    目录 前言 纯Python代码的打包 包含其他文件的打包 总结 前言 相比于cx-freeze和Nuitka,还是pyinstaller好用些,因此使用pyinstaller来生成独立的exe文件以供 ...

  4. 用Pyinstaller打包Scrapy项目问题解决!!!

    这篇报废,这里的PyInstaller教程相信对大家会有用,其中会解决spider not found的问题,真正成功地打包Scrapy:https://blog.csdn.net/La_vie_es ...

  5. pyinstaller 打包 python3项目,遇到failed to execute script XXX 错误的解决方法

    近日修改了之前一个使用pyinstaller可以成功打包的python3项目,在IDE中运行正常,但是打包以后运行exe却出现failed to execute script XXX 弹窗提示,无法正 ...

  6. python使用Pyinstaller打包整个项目

    今天真的被Pyinstaller给坑到了!!! 本文利用spec文件进行对整个项目进行打包,直接输入命令打包也可以,但会出现比较多的问题. 1 .安装Pyinstaller pip install p ...

  7. 【Python】Python项目打包发布(一)(基于Pyinstaller打包多目录项目)

    Python项目打包发布汇总 [Python]Python项目打包发布(一)(基于Pyinstaller打包多目录项目) [Python]Python项目打包发布(二)(基于Pyinstaller打包 ...

  8. 利用pyinstaller将python项目脚本打包成可执行文件

    利用pyinstaller打包python项目 由于本文讲述还算比较详细,如果对pyinstaller有一定的了解,只需快速上手,可以直接跳到第四章结合实例进行操作. 1简介及安装pyinstalle ...

  9. pyinstaller打包原理,常见问题。

    如果将Python代码使用pyinstaller打包成exe文件时,只有一个大的exe文件,很多人可能遇到,在本机上就已经不能运行了,有的情况好些,在本机可以运行,发给别人就无法正常运行.本文本就是分 ...

最新文章

  1. Dictionary泛型集合
  2. nginx 域名配置_nginx 一个域名配置多个vue项目
  3. STL源码剖析 数值算法 copy 算法
  4. php 什么函数获取ip,在PHP中获取ip地址的方法有哪些
  5. 保护系统 用数据库加密实现数据安全
  6. LeetCode 187. 重复的DNA序列
  7. linux rpm安装zabbix,CentOS 7上安装Zabbix Server 3.0 图文详解
  8. vscode怎么全局搜索_VS Code 新版本发布!支持远程开发、同步设置等新特性
  9. php mysql复杂查询_PHP MySQL如何做更复杂的查询
  10. 简易发号SQL,可用于生成指定前缀自增序列,如订单号,生成优惠券码等
  11. windows service 2008 R2 升级 sp1遇到的问题
  12. 新手必须要注意的编程范式
  13. 软文诊断50期: 百度账号有什么推广功能?能编辑软文吗?
  14. Ubuntu16安装Nvidia驱动(GTX1060显卡)
  15. 基于微信小程序开发的在线答题系统
  16. 问题日志-简易css时间轴特效
  17. 大数据入门教程系列之Hive内置函数及自定义函数
  18. 使用源码部署CITA(Ubuntu18.0.4 | VMware)
  19. 台式计算机硬盘英寸,台式电脑硬盘和笔记本电脑硬盘有区别吗?台式机硬盘报价一般是多少?...
  20. mac 打印机设置成黑白打印

热门文章

  1. PowerBI 报表平台首页报表列表加载慢
  2. 新手福利:百度官方中文教程,过年也要深度学习!
  3. Facebook、阿里等大佬现身说法,NLP是否被高估了?
  4. 论文浅尝 - JWS2020 | FEEL: 实体抽取和链接的集成框架
  5. 论文浅尝 | CoRR - 面向复杂知识问答的框架语义解析方法
  6. 玩转二算法课的笔记-第一章
  7. Linux系统中Oracle数据库使用SELECT语句检索数据(1)实例应用
  8. 看完这篇Linux基本的操作就会了
  9. finetune与Bert
  10. day33-进程池和线程池