当前位置: 首页 > news >正文

【Python实战】几种打包python代码的方法!!!

Python是一种高级编程语言。因此,将Python代码打包成可执行文件(.exe)是一种非常有效的解决方案,能够使用户无需安装Python环境即可直接运行程序,从而提升使用体验。

1、pyinstaller

使用 PyInstaller 打包 Python 代码的过程相对简单,只需在命令行中输入以下命令:

pyinstaller --onefile 文件名.py
2、cx_Freeze

cx_Freeze 也是一个广泛使用的打包工具,使用方法类似于 PyInstaller。

cxfreeze 文件名.py --target-dir dist  
3、Nuitka

Nuitka 不仅可以将 Python 代码打包成可执行文件,还能通过编译提升执行效率。

nuitka --standalone 文件名.py
4、PyOxidizer

随着对性能和单文件分发需求的增加,PyOxidizer 开始受到关注。它能够将整个 Python 应用及其依赖打包成一个单独的可执行文件,适合于现代微服务架构下的应用开发。虽然相较于其他工具上手难度略大,但对于大型项目而言,优势明显。

安装 PyOxidizer:

首先,你需要确保你已经安装了 Rust 工具链,因为 PyOxidizer 是用 Rust 编写的。可以通过以下命令安装 Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
安装完 Rust 后,再安装 PyOxidizer:
cargo install pyoxidizer

创建 PyOxidizer 配置文件

def make_python_exe():return python_executable(name = "my_app",source = "文件名.py",  # 替换为你的 Python 脚本)# 在这里调用函数来生成可执行文件
make_python_exe()
5、Docker

虽然不能直接生成 .exe 文件,但在许多云或容器化环境中,使用 Docker 打包 Python 应用已成为一种常见做法。开发者可以将应用及其依赖项封装在 Docker 容器中,实现快速部署和环境隔离。

在项目根目录下创建一个名为 Dockerfile 的文件,内容如下:

# 使用官方 Python 镜像
FROM python:3.9-slim# 设置工作目录
WORKDIR /app# 复制当前目录内容到容器中的 /app 目录
COPY . .# 安装所需的依赖
RUN pip install -r requirements.txt# 运行 Python 程序
CMD ["python", "文件名.py"]  # 替换为你的 Python 脚本

在终端中运行以下命令来构建 Docker 镜像

docker build -t my_python_app .
构建完成后,可以运行容器:
docker run my_python_app

相关文章:

【Python实战】几种打包python代码的方法!!!

Python是一种高级编程语言。因此,将Python代码打包成可执行文件(.exe)是一种非常有效的解决方案,能够使用户无需安装Python环境即可直接运行程序,从而提升使用体验。 1、pyinstaller 使用 PyInstaller 打包 Python 代…...

(已开源-ECCV2024)BEV检测模型-LabelDistill,使用真值进行知识蒸馏

项目链接:https://github.com/sanmin0312/LabelDistill (中文版翻译) 文章目录 1. Introduction & Related Work2. Method & Code3. Experiments3.1 Main Results3.2 Ablation Study 1. Introduction & Related Work 2. Method & Code 3. Experim…...

web前端第一次作业

以下为代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><form action"java-api.super-yx.com/register" method"post" enctype"multipart/form-…...

CMake 开发者手册

CMake 开发者手册 CMake 开发者手册一、介绍二、cmake 访问 Windows 注册表2.1 cmake 查询 Windows 注册表2.2 cmake 使用 Windows 注册表查找 3. find_package 查找模块3.1 cmake 查找模块的示例用法3.2 标准变量名称3.3 find_package 一个简单的查找模块示例 六、其他文章推荐…...

Redis入门:在Java程序中高效使用Redis

准备工作 下载windows版的Redis&#xff08;自行查找网络资源&#xff09; 解压到指定文件夹 如图所示&#xff1a;Redis的目录结构 redis本质上也是一个数据库&#xff0c;只不过经常被用作缓存 。redis分为服务端和客户端&#xff0c;先启动服务器redis-server&#xff0c;在…...

活着就好20241021

今日提醒&#xff1a;2024年10月21日&#xff0c;星期一&#xff0c;已是开工第247天。早安&#xff0c;摸鱼界的同仁们&#xff01; 健康警钟&#xff1a;即便工作繁忙&#xff0c;也别忘了关爱自己。起身走走&#xff0c;茶水间、厕所、廊道都是好去处&#xff0c;毕竟&…...

阿里字节技术管理岗位面试要求

在阿里巴巴等互联网公司&#xff0c;技术管理岗&#xff08;如技术团队负责人 TL 或 P8/P9 级别的职位&#xff09;面试具有较高的技术要求和管理能力的考核。面试的问题和侧重点通常包括技术深度、架构设计、团队管理、项目推动等多方面。以下是一些常见的面试问题类型、侧重点…...

MySQL !=NULL 与IS NOT NULL

1、! 与<>比较 在MySQL中 ! 和 <> 的功能一致&#xff0c;在sql92规范中建议是&#xff1a;!&#xff0c;新的规范中建议为: <> 2、!NULL 与IS NOT NULL 比较 先说结论&#xff1a;默认情况下做比较条件时使用关键字“IS NULL”和“IS NOT NULL”&#xff1…...

[Unity Demo]从零开始制作空洞骑士Hollow Knight第十六集(上篇):制作更多地图,更多敌人,更多可交互对象

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、第一个代表性场景 1.制作敌人僵尸跳跳虫更多敌人2.制作敌人阿斯匹德更多可交互对象3.制作敌人孵化虫和它的孩子二、第二个代表性场景 1.制作更多敌人2.制作…...

Soap-UI传参

<?xml version"1.0" encoding"UTF-8"?> <soapenv:Envelope xmlns:soapenv"http://schemas.xmlsoap.org/soap/envelope/" xmlns:web"http://webservice.ihosp.jxmns.thirdparty.his.gocent.com/"><soapenv:Header/>…...

Centos7搭建minio对象存储服务器

Centos7搭建minio对象存储服务器 安装二进制程序配置服务文件 安装二进制程序 参考&#xff1a;https://segmentfault.com/q/1010000042181876 minio中国版&#xff1a;https://www.minio.org.cn/download.shtml#/linux # 下载二进制程序 wget https://dl.min.io/server/min…...

递归算法之汉诺塔问题(Tower of Hanoi)详细解读

汉诺塔问题&#xff08;Tower of Hanoi&#xff09;是一个经典的递归问题&#xff0c;由法国数学家 douard Lucas 于1883年提出。问题描述了如何将不同大小的圆盘从一个柱子移到另一个柱子&#xff0c;同时遵循特定规则。它是计算机科学中用来展示递归思想和算法设计的经典案例…...

软件设计模式------工厂方法模式

工厂方法模式&#xff08;Factory Method Pattern&#xff09;&#xff0c;又称工厂模式&#xff0c;也叫虚拟构造器模式&#xff08;Virtual Constructor Pattern&#xff09;或多态工厂模式&#xff08;Polymorphic Pactory Pattern&#xff09;,属于类创建型模式。 我们知道…...

演示:基于WPF的DrawingVisual开发的高刷新率示波器

一、目的&#xff1a;分享一个基于WPF的DrawingVisual开发的高刷新率示波器 二、效果演示 特此说明&#xff1a;由于Gif录制工具帧率不够&#xff0c;渲染60帧用了4.6秒&#xff0c;平均帧率在12Hz左右&#xff0c;所以展示效果不好&#xff0c;想要看好些的效果可以看文章下面…...

git入门操作(2)

文章目录 git入门操作&#xff08;2&#xff09;git diff 查看差异git diff gitignore忽略文件1.在代码仓库创建这个文件2.添加对 log 文件过滤 连接远程仓库与ssh配置远程仓库和本地仓库关联步骤分支基本操作步骤命令&#xff1a; 合并冲突分支合并逻辑1.新建分支 dev&#xf…...

【AI学习】扩散模型学习总结PPT

#1024程序员节&#xff5c;征文# 看了一些文章&#xff0c;大概学习了扩散模型。 《李宏毅 2023 最新 Diffusion Model 原理讲解》&#xff08;文章链接&#xff1a;https://zhuanlan.zhihu.com/p/692430885&#xff09; 《What are Diffusion Models?》 https://lilianwen…...

【Python】相等性比较运算(==, is)的学习笔记

1. 相等性比较运算&#xff1a; & is Python中有两种比较运算符和is&#xff1b; 和 is 的主要区别在于它们比较的对象属性不同&#xff1a; 运算符&#xff1a; 比较对象的值或内容是否相等。调用对象的 __eq__() 方法来进行比较。可以被重载&#xff08;在自定义类中重…...

智慧公厕厂家:智慧公厕建设推动城市公厕智能化变革

随着科技的不断进步&#xff0c;智慧公厕厂家正以创新之力推动着城市公厕的智能化变革。 一、提升用户体验 智慧公厕为使用者带来了前所未有的便利。通过实时显示厕位使用情况&#xff0c;避免了旅客的无效排队&#xff0c;节省了时间。感应式设备如水龙头、洗手液等&#xff…...

大一计算机课程之线性代数

《大一计算机课程之线性代数》 在大一的计算机课程中&#xff0c;线性代数是一门极为重要的基础学科&#xff0c;它就像一把神奇的钥匙&#xff0c;为计算机科学领域的诸多方面开启了智慧之门。 线性代数主要研究线性方程组、向量空间、线性变换等内容。对于计算机专业的学生…...

什么是运动控制器?运动控制器的特点

运动控制器是一种专门用于控制机械系统中运动部件&#xff08;如电机、驱动器和其他运动元件&#xff09;的电子设备。它们在自动化、机器人、数控机床、工业自动化和精密控制系统等领域得到了广泛应用。 运动控制器的功能 运动控制器主要负责以下几个方面的功能&#xff1a;…...

Phi-3-mini-4k-instruct-gguf一文详解:GGUF格式优势与Phi-3系列轻量设计哲学

Phi-3-mini-4k-instruct-gguf一文详解&#xff1a;GGUF格式优势与Phi-3系列轻量设计哲学 1. 认识Phi-3-mini-4k-instruct-gguf Phi-3-mini-4k-instruct-gguf是微软Phi-3系列中的轻量级文本生成模型&#xff0c;采用GGUF格式封装。这个模型特别适合处理问答、文本改写、摘要整…...

OpenClaw语音交互:Phi-3-mini接入麦克风输入实战

OpenClaw语音交互&#xff1a;Phi-3-mini接入麦克风输入实战 1. 为什么需要语音交互能力 上周我在整理电脑文件时突然想到一个问题&#xff1a;当我的双手被占用时&#xff08;比如正在做饭或修理设备&#xff09;&#xff0c;如何让OpenClaw帮我执行任务&#xff1f;传统的键…...

OpenClaw多模态实践:Qwen3.5-9B-VL图文报告自动生成

OpenClaw多模态实践&#xff1a;Qwen3.5-9B-VL图文报告自动生成 1. 为什么需要多模态自动化 去年整理学术文献时&#xff0c;我每天要手动截取论文图表、复制关键数据、整理成Markdown笔记。这个过程不仅耗时&#xff0c;还经常漏掉重要细节。直到发现OpenClaw可以对接Qwen3.…...

2026年Java程序员冲大厂有何经验套路?

前几天&#xff0c;跟个老朋友吃饭&#xff0c;他最近想跳槽去大厂&#xff0c;觉得压力很大&#xff0c;问我能不能分享些所谓的经验套路。每次有这类请求&#xff0c;都觉得有些有趣&#xff0c;不知道你发现没有大家身边真的有很多人不知道怎么面试&#xff0c;也不知道怎么…...

从原理到代码:固高GTS控制卡SmartHome回零功能完整开发指南(附C#示例)

从原理到代码&#xff1a;固高GTS控制卡SmartHome回零功能完整开发指南&#xff08;附C#示例&#xff09; 在工业自动化领域&#xff0c;运动控制系统的精度和可靠性往往取决于一个看似简单却至关重要的功能——回零操作。作为固高GTS系列控制卡的核心功能之一&#xff0c;Smar…...

OpenClaw初学者套装:Qwen3.5-9B镜像+5个基础技能

OpenClaw初学者套装&#xff1a;Qwen3.5-9B镜像5个基础技能 1. 为什么选择这个组合&#xff1f; 上周六下午&#xff0c;我盯着电脑里散落各处的会议纪要、参考文章和代码片段&#xff0c;突然意识到自己每天要重复几十次"CtrlF→切换窗口→复制粘贴"的操作。作为一…...

MotorController:嵌入式伺服电机驱动的确定性执行封装

1. 项目概述MotorController是一个面向伺服系统电机控制的轻量级工具类&#xff0c;其设计目标并非替代完整的运动控制固件栈&#xff0c;而是为嵌入式工程师提供一套可直接集成、低侵入、高可控性的底层电机驱动封装。该类不依赖特定硬件抽象层&#xff08;HAL&#xff09;或实…...

三菱PLC与组态王四层电梯控制系统:详细图纸与IO分配解释

三菱PLC和组态王4层电梯四层电梯控制系统 我们主要的后发送的产品有&#xff0c;带解释的梯形图接线图原理图图纸&#xff0c;io分配&#xff0c;组态画面实验室四层电梯模型卡成狗的时候&#xff0c;真的恨自己当初梯形图只会写互锁单按钮那种幼儿园题。后来拆前辈的旧板子加…...

嵌入式软件框架设计:从基础到实战

1. 嵌入式软件框架设计基础作为一名在嵌入式领域摸爬滚打多年的工程师&#xff0c;我深刻体会到框架设计对项目成败的决定性影响。嵌入式系统与通用计算机系统最大的区别在于其资源受限性和实时性要求&#xff0c;这就决定了我们不能简单套用桌面开发的思维模式。程序框架本质上…...

INNISO1接口模块

INNIS01 接口模块INNIS01 是一款应用于工业自动化控制系统中的接口模块&#xff0c;主要用于实现控制系统内部或与外部设备之间的信号连接与数据交互&#xff0c;属于系统中的通信与接口扩展单元。一、基本概述INNIS01 接口模块通常用于连接控制器与现场设备或其他功能模块&…...