跳至主要内容

python 软件发布流程

将Python脚本转换为EXE时,所有必需的Python依赖项和dll都添加到一个大exe文件中,或者与可执行文件一起添加。这些转换器确保开发人员无论脚本在何处执行,所有必需的Python文件都将存在于计算机上-使脚本成功执行。

PyInstaller将Python应用程序冻结(打包)成独立的可执行文件

它基本上是PyInstaller的图形用户界面

使用auto-py-to-exe时出现的问题



工具

HM NIS Edit
免费的NSIS脚本编辑器,脚本向导将帮助初学者创建标准安装程序

NSIS(Nullsoft Scriptable Install System)
https://nsis.sourceforge.io/Main_Page
一个开源的 Windows 系统下安装程序制作软件,可利用HM NIS 生成的脚本制作安装程序

ico图标
http://www.iconarchive.com/


参考资料


https://yujunjiex.gitee.io/2018/10/18/PyInstaller%E6%89%93%E5%8C%85%E8%AF%A6%E8%A7%A3/

PyInstaller
https://pythonhosted.org/PyInstaller/index.html
PyInstaller读取您编写的Python脚本。它会分析您的代码,以发现您的脚本执行所需的每个其他模块和库。然后它收集所有这些文件的副本 - 包括活动的Python解释器! - 并将它们与您的脚本放在一个文件夹中,或者可选地放在一个可执行文件中。

从PyPI安装PyInstaller:pip install pyinstaller

转到程序的目录并运行:pyinstaller yourprogram.py

执行完毕后,源文件所在目录将生成 dist 和 build 两个文件夹。 其中,build 目录是 pyinstaller 存储临时文件的目录,可以安全删除。最终的打包程序在 dist 内部的 dpython 目录中。目录中其他文件 是可执行文件 dpython.exe 的动态链接库。


流程

1、编写代码app.py


2、执行pyinstaller
切换到app.py路径下运行,注意等号前后不能有空格
pyinstaller --onefile --name=App --windowed --key=661142744397B9B0 --icon=img\tax.ico main.py

--onefile
指定打包后dist文件夹中只生成一个exe格式的文件

--name
要分配给捆绑应用程序和规范文件的名称(默认值:第一个脚本的基本名称)

--windowed
不显示控制台窗口

--icon
指定生成程序的icon图标


3、在app.py文件夹下删除生成的app.apec文件,bulid文件夹
拷贝出dist文件夹中的app.exe到app.py路径下然后删除dist文件夹
剩余__pycache__文件夹、app.exe文件、app.py文件


4、打开HM NIS Edit软件,依次点击文件 -- 新建脚本:向导












也可以通过NSIS软件编译scripts.nsi
1、打开NSIS文件,依次点击Compiler -- Compile NSI scripts







评论

此博客中的热门博文

Chrome浏览器

谷歌搜索 双引号——精确搜索 冒号后加文件类型——搜索特定类型的结果 关键词 后 site:**——搜索特定网站的关键词 +、-关键词——实现特定需求筛选 Google中/——快捷键入浏览·搜索框 关键词后..——搜索特定范围(地点)关键词 intitle:关键词——搜索特定标题 用 puppeteer 直接运行 chrome 爬 https://github.com/puppeteer/puppeteer Puppeteer 是一个 Node 库,它提供了一个高级 API 来通过 DevTools 协议 控制 Chrome 或 Chromium 。Puppeteer默认 无头 运行,但可以配置为运行完整(非无头)Chrome 或 Chromium。 了解如何为 Chrome 开发扩展程序 https://developer.chrome.com/docs/extensions/mv3/ 什么是Chrome插件 https://github.com/sxei/chrome-plugin-demo Google Workspace 状态信息中心 https://www.google.com/appsstatus#hl=zh&v=status 此页面提供属于“Google Workspace”的服务的状态信息 谷歌浏览器离线下载 https://support.google.com/chrome/answer/95346?co=GENIE.Platform%3DDesktop&hl=zh-Hans 企业版 https://cloud.google.com/chrome-enterprise/browser/download 也可以在谷歌浏览器 帮助中心 中搜索chrome https://www.google.com/intl/zh-CN/chrome/?standalone=1 chrome 打开新网页时不要覆盖 鼠标 中键(滚轮)点击超链接 ,或者右击超链接,选择新标签页打开, 还有点链接的同时按下 Ctrl 键也可以 谷歌在线翻译网页 http://translate.google.com/translate?u= http://www.dropitproject.com/index.php 打开chrome浏览器按 F6 ,等同于按 ...

python 之 configparser、configobj(ini配置文件)

ini 即 Initialize 初始化之意,通常由节(Section)、键(key)和值(value)组成 ini修改工具 https://visionlore.com/lab/ini_editor.php https://www.horstmuc.de/wbat32.htm#inifile 语法      INIFILE filename.ini [section] item=string # db.ini 中的内容 # ********************* # [localdb] # host     = 127.0.0.1 # user     = root # password = 123456 # port     = 3306 # database = mysql # *********************   import pymysql from configparser import ConfigParser   cfg = ConfigParser ( ) cfg. read ( "db.ini" )   print ( cfg. items ( "localdb" ) ) db_cfg = dict ( cfg. items ( "localdb" ) ) print ( db_cfg )   # 端口port类型str转为int db_cfg [ 'port' ] = int ( db_cfg [ 'port' ] ) con = pymysql. connect ( **db_cfg )   from pprint import pprint lst = [ line. strip ( ) for line in open ( 'db.ini' ) ] pprint ( lst ) http://www.voidspace.org.uk/python/articles/configobj.shtml https://configobj.readthedocs.io/en/latest/configobj.html https://pythonhosted.or...

python 代码示例

  加密软件 谷歌搜registration codes python和license keys python https://www.nuvovis.com/python-software-licensing.html https://build-system.fman.io/generating-license-keys https://codereview.stackexchange.com/questions/95499/register-login-and-authentication-through-terminal 获取MAC地址并生成序列号,从序列号生成激活密钥 secrets模块资料 https://blog.miguelgrinberg.com/post/the-new-way-to-generate-secure-tokens-in-python # 不足十位左边加零 while True:     num = input('Enter a number : ')     print('The zero-padded number is : ', str(num).rjust(10, '0')) 查找n个自然数的和 # Sum of natural numbers up to num   num = 16   if num < 0 :     print ( "Enter a positive number" ) else :     sum = 0     # use while loop to iterate until zero     while ( num > 0 ) :         sum + = num        num - = 1     print ( "The sum is" , sum )   使用匿名函数显示整数2的幂 # Display the powers of 2 using anonymous function ...