Python——Windows使用Nuitka2.0打包(保姆级教程)

目录

一、Python虚拟环境搭建

1.1、下载Python

 1.2、使用 venv方法(创建虚拟环境)

1.3、进入虚拟环境

1.4、用pip下载项目需要的包(与nuitka)

二、 使用 Nuitka 打包

 2.1、打包常用命令(使用nuitka --help可查看所有命令)

 2.2、我的项目打包示例(简单的摄像头项目)

2.3、注意事项

2.4、打包成功

三、 参考文章

四、总结


一、Python虚拟环境搭建

打包Python软件,最好用虚拟环境

1.1、下载Python

 这个应该都有了。python-3.9.5-amd64.zip - 蓝奏云(没有下载的话,这里可以下载)

 1.2、使用 venv方法(创建虚拟环境)

执行:python -m venv myenv 

# python -m venv +虚拟环境名称
python -m venv myenv # 其他
source myenv/bin/activate  # 在 Linux 或 macOS 上
myenv\Scripts\activate.bat  # 在 Windows 上

然后就在当前地方创建一个myenv文件夹

1.3、进入虚拟环境

然后进入目录“E:\aaaa\myenv\Scripts”

这里提供了两个方法:

调用activate文件——可以进入我们的虚拟环境

调用deactivate文件——可以退出我们的虚拟环境

成功进入

1.4、用pip下载项目需要的包(与nuitka)

# 换源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set install.trusted-host mirrors.aliyun.com
pip install nuitka
pip install -r requirements.txt  # 假设你的所有依赖都列在了 requirements.txt 文件中

二、 使用 Nuitka 打包

使用 Nuitka 要在虚拟环境中使用!!!(而且你的虚拟环境也要安装Nuitka )

 使用 Nuitka 打包:(重要的事情,说三遍!!!)

项目一定都要是英文路径!!!

项目一定都要是英文路径!!!

项目一定都要是英文路径!!!

  •  Nuitka2.0已经升级,如果我们缺少他需要的环境,他会自己去github上面下载(我们只需要耐心等待即可)
  • 如果觉得下载慢,就自己下载对应的环境吧!
  • 老版教程链接(Nuitka环境安装):https://blog.51cto.com/u_14121041/6414698

 2.1、打包常用命令(使用nuitka --help可查看所有命令)

--mingw64 #默认为已经安装的vs2017去编译,否则就按指定的比如mingw(官方建议)
--standalone 独立环境,这是必须的(否则拷给别人无法使用)
--windows-disable-console 没有CMD控制窗口
--output-dir=out 生成exe到out文件夹下面去
--show-progress 显示编译的进度,很直观
--show-memory 显示内存的占用
--enable-plugin=pyside6
--plugin-enable=tk-inter 打包tkinter模块的刚需
--plugin-enable=numpy 打包numpy,pandas,matplotlib模块的刚需
--plugin-enable=torch 打包pytorch的刚需
--plugin-enable=tensorflow 打包tensorflow的刚需
--windows-icon-from-ico=你的.ico 软件的图标
--windows-company-name=Windows下软件公司信息
--windows-product-name=Windows下软件名称
--windows-file-version=Windows下软件的信息
--windows-product-version=Windows下软件的产品信息
--windows-file-description=Windows下软件的作用描述
--windows-uac-admin=Windows下用户可以使用管理员权限来安装
--linux-onefile-icon=Linux下的图标位置
--onefile 像pyinstaller一样打包成单个exe文件(2021年我会再出教程来解释)
--include-package=复制比如numpy,PyQt5 这些带文件夹的叫包或者轮子
--include-module=复制比如when.py 这些以.py结尾的叫模块

 2.2、我的项目打包示例(简单的摄像头项目)

项目下载链接:Acamera-python-nuitka.zip - 蓝奏云

我的项目用了:PySide6、opencv-python、numpy三个库

 我的打包命令:(你的可以自行调整)

nuitka --mingw64 --show-progress --standalone --disable-console --enable-plugin=pyside6 --plugin-enable=numpy --onefile --remove-output camera.py 

进入虚拟环境->安装库->开始打包

打包中:

耐心等待....

2.3、注意事项

我们需要按y,同意下载(一路输入:yes,即可打包完成)

他会下载我们缺少的环境(这里我们选择了mingw64 ,他就会去github上面下载)

会有多个东西需要下载,所以耐心一些

 

2.4、打包成功

生成了一个55MB的可执行文件(因为我让他只能生成一个文件)

 

三、 参考文章

python3 使用虚拟环境 venv:

Python配置虚拟环境---使用venv_python -m venv-CSDN博客

Nuitka1.0打包教程

https://blog.51cto.com/u_14121041/6414698

小插曲

1、在打包期间,Nuitka需要 一个dll,他竟然去找到了我的微信开发者工具。

2、然而,微信开发者工具是中文路径,他就报错了!

3、那么我就把这个路径改为英文的,重新打包,就可以了~

四、总结

一、Python虚拟环境搭建

1.1 下载Python
  • 访问Python官网下载最新版的Python安装程序,并根据操作系统执行安装。
1.2 使用venv方法创建虚拟环境
  • 在命令行中,使用python -m venv myenv创建一个名为myenv的虚拟环境。
  • 激活虚拟环境:
    • Linux或macOS:source myenv/bin/activate
    • Windows:myenv\Scripts\activate.bat
1.3 进入虚拟环境
  • 激活虚拟环境后,您的命令行提示符会更改,以显示当前激活的虚拟环境名称。
1.4 使用pip下载项目需要的包
  • 更换pip源至清华大学镜像站点以加速下载。
  • 安装Nuitka和其他项目依赖包。
    • pip install nuitka
    • pip install -r requirements.txt(假设所有依赖都列在了requirements.txt文件中)

二、使用Nuitka打包

2.1 打包常用命令
  • Nuitka的命令行参数非常灵活,可以根据需要选择合适的参数来满足不同的打包需求。
  • 示例命令:nuitka --mingw64 --show-progress --standalone --disable-console --enable-plugin=pyside6 --plugin-enable=numpy --onefile --remove-output camera.py
    • 这个命令会使用Nuitka和MinGW64编译器来打包一个名为camera.py的Python项目。
    • 启用了多个插件来支持Pyside6、Numpy等库的打包。
    • 使用--onefile参数来生成单个可执行文件。
2.2 注意事项
  • 确保所有需要的环境和工具已正确安装。
  • 根据项目实际需求选择合适的Nuitka参数。
  • 如果遇到问题,参考Nuitka的官方文档或搜索相关错误信息。
2.3 打包成功
  • 成功执行上述命令后,您的项目将被打包为一个可执行文件,位于指定的输出目录中。
  • 如果有其他问题,建议查看Nuitka的官方文档和GitHub页面,以获取最新使用技巧。

 

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

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

相关文章

2024最新版聚合支付彩虹易支付PHP源码

彩虹易支付是一种便捷的支付解决方案,属于聚合易支付平台的一部分。它提供了即时到账功能,无需签约即可使用。通过这个平台,您可以方便地接入多种支付方式,包括支付宝当面付、QQ钱包、财付通、微信扫码支付和个体商户聚合收款码等…

内网渗透-DC-9靶机渗透

攻击机:kali 192.168.236.137 目标机:dc-9 192.168.236.138 一、信息收集 1.使用arp-scan -l和nmap进行主机发现和端口信息收集 nmap -sS -T5 --min-rate 10000 192.168.236.138 -sC -p- 发现22端口被阻塞 2.whatweb收集一下cms指纹信息 what http…

代码随想录算法训练营第62/63天| 503.下一个更大元素II、42. 接雨水、84.柱状图中最大的矩形

文章目录 503.下一个更大元素II思路代码 42. 接雨水思路代码 84.柱状图中最大的矩形思路代码 503.下一个更大元素II 题目链接:503.下一个更大元素II 文章讲解:代码随想录|503.下一个更大元素II 思路 和739. 每日温度 (opens new window)也几乎如出一辙&…

一周学会Django5 Python Web开发-Django5列表视图ListView

锋哥原创的Python Web开发 Django5视频教程: 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计27条视频,包括:2024版 Django5 Python we…

Matlab在同一张图中如何加入多个图例

根据代码最终画出的图片如下: 其实原理很简单,就是在一张figure中画多个坐标轴,每个坐标轴都有对应的图例,之后再将多余坐标轴隐藏,只保留一个即可。 代码如下: clear all; close all;dd_linewidth 1;a …

CSP-201712-1-最小差值

CSP-201712-1-最小差值 #include<iostream> #include<vector> #include<algorithm> using namespace std; vector<int>arr; int main() {int n, minDelta 99999;cin >> n;for (int i 0; i < n; i){int t;cin >> t;arr.push_back(t…

科技企业如何做到FTP数据安全保护

在数字化浪潮的推动下&#xff0c;科技企业的数据已成为推动创新、提升效率、增强竞争力的核心资源。数据的重要性不言而喻&#xff0c;它不仅包含了客户信息、市场分析、产品设计等关键信息&#xff0c;更是企业宝贵的资产。然而&#xff0c;随着数据量的激增&#xff0c;数据…

数据守护者:揭秘文件备份的重要性与实用策略

一、守护数据安全&#xff1a;文件备份的不可或缺性 在数字化时代&#xff0c;我们的工作、学习和生活都围绕着数据展开。无论是珍贵的家庭照片、重要的工作文件&#xff0c;还是个人的创意作品&#xff0c;这些数字资产都承载着我们的回忆、努力和创意。然而&#xff0c;随着…

基于扩散模型的图像编辑:首篇综述

AIGC 大模型最火热的任务之一——基于 Diffusion Model 的图像编辑(editing)领域的首篇综述。长达 26 页&#xff0c;涵盖 297 篇文献&#xff01;本文全面研究图像编辑前沿方法&#xff0c;并根据技术路线精炼地划分为 3 个大类、14 个子类&#xff0c;通过表格列明每个方法的…

十四、Qt主机信息与网络编程

一、主机信息 1、主机信息接口 QHostInfo&#xff1a;获取主机名称和IP地址QNetWorkInterface&#xff1a;获取主机的所有网络接口&#xff0c;包括子网掩码和广播地址等 &#xff08;1&#xff09;使用 项目添加模块QT network2、实现程序 &#xff08;1&#xff0…

Linux系统加固:限制用户对资源的使用禁止IP源路由更改主机解析地址的顺序设置umask值

Linux系统加固&#xff1a;限制用户对资源的使用&禁止IP源路由&更改主机解析地址的顺序&设置umask值 1.1 限制用户对资源的使用1.2 禁止IP源路由1.3 更改主机解析地址的顺序1.4 禁止ip路由转发1.5 设置umask值 &#x1f496;The Begin&#x1f496;点点关注&#x…

虚拟化介绍

虚拟化理论介绍 什么是虚拟化: 虚拟化&#xff08;Virtualization&#xff09;技术最早出现在 20 世纪 60 年代的 IBM 大型机系统。 在70年代的 System 370 系列中逐渐流行起来&#xff0c;这些机器通过一种叫虚拟机监控器&#xff08;Virtual Machine Monitor&#xff0c;V…