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文件”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491903.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

活着不易,5G时代终端厂商的路在何方?

来源:物联网智库摘要:站在“浮尸遍地”的通信终端的世界里,各大终端厂商无不面临着同一个来自灵魂的拷问:活着不易,5G时代终端厂商的路在何方?从1G模拟通信时代到4G移动宽带时代,全球手机终端厂…

图像处理 --- 一、认识图像处理

声明: 本系列文档由学习哔站视频总结而得,后续会逐渐添加相对应的示例代码(python) 1. 什么是图像与图像处理 百闻不如一见。 图像是客观对象的一种相似性的、生动性的描述或写真,是人类社会活动中最常用的信息载体…

tf.gfile()函数

转自https://blog.csdn.net/pursuit_zhangyu/article/details/80557958 这些函数和python中的os模块非常的相似,一般都可以用os模块代替吧 gfile API介绍 下面将分别介绍每一个gfile API! 2-1)tf.gfile.Copy(oldpath, newpath, overwrite…

Web安全解决方案

什么是 .NET Framework 安全性? .NET Framework 提供了用户和代码安全模型,允许对用户和代码可以执行的操作进行限制。要对基于角色的安全性和代码访问安全性进行编程,可以从 System.Security 命名空间中使用类型。.NET Framework 还提供了System.Secur…

11款新品,一切为了落地!商汤:普惠AI的时代,来了

来源:网易智能北京时间5月15日,商汤科技在京举办一年一度的人工智能峰会,发布了11款新品,包含6款硬件和多个平台的全面升级。商汤科技CEO徐立在开场演讲中以清明上河图为例,认为人工智能技术的普及正在谱写新时代的人类…

图像处理 --- 二、数字图像处理基础

1. 色度学基础 电磁光波谱组成: 1.1 三基色原理 人眼的视网膜上存在大量能在适当亮度下分辨颜色的锥状细胞,它们分别对应红、绿、蓝三种颜色,即分别对红光、绿光、蓝光敏感。由此,红(R)、绿(G)…

Bug调试(lldb)

原文网址:http://www.cnblogs.com/Twisted-Fate/p/4760156.html 今天博主有一些Bug调试的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步. Xcode的Bug调试方法大概有以下几种: 1.断点,全局断点,条件断点配合Nslog找出Bug 2.静态分析工具:Analyze,静态检测内…

解密!谷歌这样搞定美军世纪难题,从眼科诊断到无人驾驶

来源:智东西导语:谷歌AI部门负责人Jeff Dean,在开发者大会中详细介绍了该公司如何利用AI技术解决科学问题。5月14日消息,在加利福尼亚州山景城举行的谷歌年度I / O开发者大会上,谷歌研究小组高级研究员、谷歌人工智能部…

CSDN中图片缩放与居中

1. 直接上传图片 代码示例: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210628233911771.png?x-oss-processimage/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3poYl9mZW5n,size_16,color_FFFFFF,t_70#pic_cent…

tensorflow中创建多个计算图(Graph)

转自https://blog.csdn.net/dcrmg/article/details/79028032 tf中可以定义多个计算图,不同计算图上的张量和运算是相互独立的,不会共享。计算图可以用来隔离张量和计算,同时提供了管理张量和计算的机制。计算图可以通过Graph.device函数来指…

文体中心场地预订小程序开发笔记-功能设计

首页 1.推荐活动: 展示最新、最受欢迎或即将举办的文体活动。2.新闻与公告: 提供关于文体中心的最新新闻和通知。 活动浏览与报名 3.活动列表: 用户可以查看文体中心的各类文体活动,包括体育赛事、文艺演出、培训课程等。4.活动…

【剑指offer】面试题40:数组中只出现一次的数字

题目: 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 思路: 因为只有两个只出现一次的数字,所以所有数字进行异或之后得到值res一定不是0.这样,res中其中至少1bit不是…

图像处理 --- 4.1 图像增强的点运算

1. 图像增强的点运算 1.1 概念 图像增强: 采用一系列计数改善图像的视觉效果,或将图像转换成一种更适合于人或机器进行分析和处理的形式。 1.2 图像增强的主要方法 按照图像的作用域来说: 空间域增强:直接对图像各种像素进行…

5G临时牌照或将发放,商用大幕已经开启

报告来源:广发证券、华泰证券、网络资料前 言:5月17日是世界电信日,业内认为这是5G临时牌照发放的重要时间点。日前中国联通在活动上表示,北京联通已率先开展面向商用的5G规模试验,近期北京将开始5G的试商用。这侧面印…

大三下 期中试卷

自己做的,仅供参考。对错自负 湛江师范学院2014-2015学年度第 2学期 期中试卷 科目:LINUX网络服务器管理 题号 一、 操作 二、 C 编程 三、 shell编程 四、 辩论 总分 评分 复核 分值 25 25 25 25 100 蔡广基 得分 得分…

tf.nn.dropout

转自:https://blog.csdn.net/huahuazhu/article/details/73649389 tf.nn.dropout是TensorFlow里面为了防止或减轻过拟合而使用的函数,它一般用在全连接层。 Dropout就是在不同的训练过程中随机扔掉一部分神经元。也就是让某个神经元的激活值以一定的概…

常用照片尺寸

常用照片尺寸对照表:

无人驾驶中用到的八大坐标系

本文来源:智车科技第一个叫作eci地心惯性坐标系(如图,红色o-xyz坐标系所示,低新惯性坐标系(i系)的原点位于地球原点,z轴沿地轴指向北极,x轴和y轴位于赤道平面内,与z轴满足…

np.random.get_state()

转自https://blog.csdn.net/Strive_For_Future/article/details/81210907 state np.random.get_state() 功能:获取随机生成器 np.random的状态 作用:常与np.random.set_state() 搭配使用。使随机生成器random保持相同的状态(state&#x…

c#之内置类型

内置类型:就是.NET Framework System命名空间中写好的类型。 下面看看C#都有哪些内置类型 上面的内置类型,除了string和object外,其他的都被称作简单类型。也可以把左边的看作C#类型的关键字,左边是类型的别名,关键字和…