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 = None

a = 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 os

os.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文件”。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值