首页
高清壁纸
友情链接
留言板
关于我
推荐
小彬官网
旗下站点
QQ交流群
Search
1
非常好看的个人引导页
4,717 阅读
2
精美的官网源码,PC端更精美
4,033 阅读
3
简约好看的个人网页
3,762 阅读
4
网页鼠标点击特效代码
3,088 阅读
5
在线PHP拍网恋照妖镜源码
2,881 阅读
技术分享
技术教程
其它分享
C#笔记
个人笔记
软件仓库
电脑软件PC
手机软件CP
模板资源
苹果CMS
Typecho
Emlog
网站源码
HTML网页
PHP程序
代码脚本
点点滴滴
登录
Search
标签搜索
网站源码
HTML
个人网页
PHP源码
PHP程序
引导页
导航网站
导航页面
表白网页
APP
手机软件
代码
视频解析
图床
破解版
下载页
M3U8解析
PHP代码
恋爱网页
电脑软件
彬彬
累计撰写
137
篇文章
累计收到
2,104
条评论
今日撰写
1
篇文章
首页
栏目
技术分享
技术教程
其它分享
C#笔记
个人笔记
软件仓库
电脑软件PC
手机软件CP
模板资源
苹果CMS
Typecho
Emlog
网站源码
HTML网页
PHP程序
代码脚本
点点滴滴
页面
高清壁纸
友情链接
留言板
关于我
推荐
小彬官网
旗下站点
QQ交流群
用户登录
登录
搜索到
4
篇与
个人笔记
的结果
2025-07-31
Nuitka打包Python程序全面指南
Nuitka打包Python程序全面指南Nuitka是一个强大的Python编译器,能够将Python代码编译成C/C++代码并进一步编译为本地机器码,显著提升程序执行效率并简化部署过程。以下是使用Nuitka打包Python程序的详细指南。一、Nuitka简介与优势Nuitka是一个完全兼容Python 2.6到3.12的Python编译器,它通过将Python代码转换为优化的C++代码并编译为本地可执行文件,提供接近原生代码的执行性能。与PyInstaller等打包工具相比,Nuitka具有以下显著优势:性能提升:编译后的程序比解释执行的Python代码快2-10倍,特别适合计算密集型任务更小的文件体积:通过优化和压缩技术生成更紧凑的可执行文件更好的兼容性:支持几乎所有Python标准库和主流第三方库跨平台支持:可生成Windows、Linux和macOS平台的可执行文件代码保护:编译后的二进制文件比传统打包工具更难反编译二、安装与环境准备1. 基础安装使用pip直接安装Nuitka:pip install nuitka建议在虚拟环境中安装以避免依赖冲突:conda create -n EXE python=3.12.8 conda activate EXE pip install nuitka2. 系统依赖Linux系统需要安装编译工具:sudo yum install -y gcc gcc-c++ python3-devel # CentOS sudo apt install patchelf # Ubuntu[1](@ref)Windows系统需要安装MinGW64或Visual Studio的C++编译工具3. 可选工具安装UPX可进一步压缩生成的可执行文件:wget https://github.com/upx/upx/releases/download/v4.0.2/upx-4.0.2-amd64_linux.tar.xz tar -xf upx-4.0.2-amd64_linux.tar.xz sudo cp upx-4.0.2-amd64_linux/upx /usr/local/bin/三、基本打包命令{message type="success" content="小经验提示:1.打包一定要中文路径,不然会出现一些问题2.建议放C盘打包,实测速度更快"/}简单打包生成独立目录结构的可执行文件:nuitka --standalone --remove-output main.py生成单个可执行文件:nuitka --standalone --onefile --remove-output main.py2. 常用参数说明--standalone:创建独立可执行文件,包含所有依赖 --onefile:将所有文件打包成单个可执行文件 --remove-output:删除临时缓存文件 -o:指定输出文件名 --enable-plugin=tk-inter:启用Tkinter插件支持 --windows-disable-console:禁用控制台窗口(适用于GUI应用) --include-data-files:包含额外数据文件四、处理不同类型应用的打包GUI应用打包Tkinter应用:nuitka --standalone --onefile --enable-plugin=tk-inter your_gui_app.pyPyQt5应用:nuitka --standalone --onefile --enable-plugin=pyqt5 --include-module=PyQt5 your_pyqt_app.py2. Web应用打包安装nuitka-web后打包Flask应用:pip install nuitka-web nuitka-web --flask your_flask_app.py或手动指定静态文件目录:nuitka --standalone --onefile \ --include-data-dir=templates=templates \ --include-data-dir=static=static \ --include-package=flask \ app.py3. 数据处理应用打包使用NumPy、Pandas等科学计算库的应用:nuitka --standalone --onefile --include-package=numpy --include-package=pandas your_data_app.py五、高级优化与调试性能优化选项--optimize=2:启用最高级别优化 --lto=yes:启用链接时优化,减小文件体积 --python-flag=no_asserts:禁用断言,提升性能 --jobs=$(nproc):使用多核并行编译加速打包调试选项--debug:生成包含调试信息的二进制文件 --show-scons:显示SCons构建系统的详细输出 --show-memory:显示内存占用情况交叉编译指定目标平台进行交叉编译:nuitka --standalone --recurse-all --target package:dir=bin,all your_script.py六、常见问题解决缺少依赖库:手动包含缺失的包nuitka --standalone --onefile --include-package=missing_package your_script.py文件体积过大:使用UPX压缩nuitka --standalone --onefile --enable-plugin=upx your_script.py打包tkinter报错:确保主代码中添加import tkinter as tkWindows兼容性问题:使用--mingw64而非VS编译器图标处理:PNG图标需安装imageio库,建议使用ICO格式七、最佳实践建议版本选择:Nuitka 1.9.5和最新版本较为稳定环境隔离:推荐使用虚拟环境而非Anaconda基础环境路径处理:避免使用中文或空格路径依赖管理:对于复杂项目,考虑将核心代码打包为pyd文件持续集成:可集成到GitHub Actions等CI/CD流程中通过合理配置Nuitka,您可以将Python应用高效地打包为高性能的可执行文件,实现真正的"一次编写,到处运行"。根据项目需求选择适当的打包策略和优化选项,可以在性能、文件体积和兼容性之间取得最佳平衡。{callout color="#36e0f7"}动态导入的模块未正确打包pywinauto依赖comtypes.stream模块,但该模块可能通过动态导入方式加载(如运行时生成),导致PyInstaller/Nuitka等工具在打包时未能自动包含此模块若使用Nuitka:添加--include-module参数nuitka --standalone --onefile --include-module=comtypes.stream Python.py{/callout}
2025年07月31日
76 阅读
1 评论
0 点赞
2025-07-26
数据库SQL【插入、修改、删除语句】基本语法——笔记
数据库SQL【修改、删除语句】基本语法#——————————【插入数据】———— ## 1.INSERT INTO movie指定要向movie表中插入数据,加上(指定要插入数据的列) insert into movie(id,title,director,release_date,length_minutes) values (23,'活着','张艺谋','1994-05-18',125),(24,'活着','张艺谋','1994-05-18',125) #——————————【修改数据】———— ## 1.修改对应数据:【UPDATE movie】指定要更新 movie 表中的数据 如果没有【WHERE】条件,会更新表中所有记录 update movie set length_minutes = 50,director='姜文' where title = '无人区' ## 2.修改对应数据:只更新ID值在1到5之间(包含1和5)的记录【BETWEEN】是范围运算符 update movie set length_minutes = 50,director='姜文' where id between 1 and 5 #——————————【删除行数据】———— ## 1.删除一整行数据,对应条件 delete from movie where title = '无人区' #——————————【删除列数据】———— ## 1.删除一整列数据,对应条件director列,可以删除多个列,套用【drop column】 alter table movie drop column director,drop column length_minutes #——————————【删除所有数据】———— ## 1.删除movie表的所有内容 delete from movie ## 2.删除movie的表 drop table movie
2025年07月26日
16 阅读
2 评论
0 点赞
2025-07-26
SQL 主键(Primary Key)——笔记
SQL 主键(Primary Key)主键是关系型数据库中用于唯一标识表中每一行记录的列或列组合。它是数据库表设计中的一个重要概念。主键的特性唯一性:主键值必须是唯一的,不能重复非空性:主键列不能包含NULL值不可变性:主键值一旦设定,通常不应更改主键的类型自然主键:使用业务中自然存在的标识(如身份证号、学号)代理主键:专门为表创建的标识(如自增ID、GUID)设置方法
2025年07月26日
9 阅读
0 评论
0 点赞
2025-07-26
数据库SQL【查询语句】基本语法——笔记
## 1.##movir中提取title和director列的表 select title,director from movie ## 2.movir中提取使用*所有列的表 select * from movie ## 3.提前director列数据,通过【distinct】语句取掉重复内容,根据director去重的数据,后面的release_date根据前面去重的数据一致 select distinct director,release_date from movie ## 4.使用【order by】语法对列表排序,默认为升序,尾部加个【desc】可以改变为降序 select * from movie order by release_date ## 5.前面加个【director】以导演名一列为排序,后面release_date以时间通过【desc】来降序 select * from movie order by director,release_date desc ## 6.使用【limit】语法输出列表的前5条 select * from movie limit 5 ## 6.使用【limit】语法前面加个3,将从第4行开始输出列表5条数据 select * from movie limit 3,5 ## 7.【where director=】 语法筛选出对应内容的数据 select * from movie where director='宁浩' ## 8.筛选出来的内容使用【and】与语句 时间列 >110分钟的数据 select * from movie where director='宁浩' and length_minutes > 110 ## 9.筛选出来的内容使用【or】或语句 筛出导演和时间 >110分钟的数据 select * from movie where director='宁浩' or length_minutes > 110 ## 10.筛选出来的内容使用【in】语句 筛出director列多个人的数据 select * from movie where director in('宁浩','姜文') ## 11.使用【between】语法,取length_minutes列下110到120区间的数据 select * from movie where length_minutes between 110 and 120 ## 12.筛选列中对应时间的列 select * from movie where release_date='2013-12-03' ## 13.【like】通配符筛选,筛选内容包含2013的字符,来达到赛选2013年份所有数据的功能 select * from movie where release_date like '2013%' ## 14.【like】通配符筛选,使用下划线_一个代表一个文字,这里可以赛选出3个字的导演名字 select * from movie where director like '___' ## 15.使用【year()】语法,提取日期中的年份,进行筛选 select * from movie where year(release_date)='2013' ## 15.使用【month()】语法,提取日期中的月年份,进行筛选 select * from movie where month(release_date)='12'
2025年07月26日
11 阅读
0 评论
1 点赞