Python项目打包与依赖管理指南

在Python开发中,python文件需要在安装有python解释器的计算机的电脑上才能运行,但是在工作时,我们需要给客户介绍演示项目功能时并不一定可以条件安装解释器,而且这样做非常不方便。这时候我们可以打包项目,用于给客户展示项目。

在python开发中正确管理依赖包和打包项目是非常重要的。本文将介绍如何使用pip(Python包管理工具)和虚拟环境来管理和打包Python项目。

一、pip:Python包管理工具

pip是Python的包管理工具,用于管理项目所使用的依赖包。它允许你轻松地安装、更新和卸载Python包。

虚拟环境的重要性

在开始打包之前,我们需要强调虚拟环境的重要性:

每个项目应该使用独立的虚拟环境
所有依赖包应该在虚拟环境中安装
这样可以避免不同项目之间的包冲突

二、设置pip镜像源

我们可以在官网上下载,但是官网下载非常缓慢,下图有官网地址:https://pypi.org/

为了加快下载速度,我们可以使用国内镜像源:

我们需要先修改pip镜像源

这里我已经为大家打包好,分享在百度网盘,这里有链接点击链接前往下载:

通过百度网盘分享的文件:pip.rar
链接:https://pan.baidu.com/s/1SYKCFXTRSPSds1UHFmiugQ?pwd=abbq 
提取码:abbq

下载完以后把"pip"文件夹放在用户家目录(如 "C:\Users\Administrator")下,就像我这样:

三、常用pip命令

在学习打包之前,我们先一起学习几个简单的pip命令,相信各位都使用pip命令打包项目了,大概都应该在使用pycharm进行python开发了吧,pip命令我就在pycharm的终端上运行了:

1. 列出已安装的包:
pip list
2. 安装包:
   pip install 包名

 例如:"pip install pyinstaller",而"pyinstaller"就是我们一会打包需要安装的模块,大家可以安装一下。

使用国内镜像网站以后我们安装会快很多:

3. 查看包信息:
   pip show 包名

这会显示包的依赖项(Requires)和官网(Home-page)等信息。

点击这个链接可以前往官网,虽然没什么用就是了:

4. 卸载包:
   pip uninstall 包名

 注意:这不会自动卸载依赖包。下面分别是卸载结束的样子、卸载之前的list展示、卸载之后的list展示,可以看见卸载前的"pyinstaller"在卸载后没了,但是它的依赖包还在。

四、使用PyInstaller打包Python程序

PyInstaller是一个流行的Python打包工具。以下是使用步骤:

1. 安装PyInstaller:
 pip install pyinstaller
2. 打包Python程序:
   pyinstaller -F your_script.py

这将创建一个单独的可执行文件。我这里用我写的学生管理系统当作例子操作:

运行结束:

前往文件夹:

四、注意事项

确保在虚拟环境中进行所有操作

打包前检查所有依赖是否正确安装

测试打包后的程序,确保它在目标环境中正常运行

通过遵循这些步骤和最佳实践,你可以有效地管理Python项目的依赖,并成功地将你的Python程序打包成可执行文件。记住,良好的包管理和虚拟环境使用是Python开发中的关键技能。

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

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

相关文章

平价养猫必看!测评几十款选出的最值得入手的希喂主食冻干

各位铲屎官,今天来聊聊我近期发现的宝藏主食冻干——希喂CPMR2.0大橙罐。平价养猫必看!,在追求猫咪饮食健康与自身预算平衡的路上,我尝试了多种产品,而希喂以其高含肉量和高营养价值脱颖而出。它让喂食变得多样化且高效…

【STM32】LED闪烁LED流水灯蜂鸣器(江科大)

LED正极:外部长脚、内部较小 LED负极:外部短脚、内部较大 LED电路 限流电阻:保护LED,调节LED亮度(本实验用面包板为了方便,省去了限流电阻,设计电路时要加上) 左上图:低…

【golang-ent】go-zero框架 整合 ent orm框架 | 解决left join未关联报错的问题

一、场景 1、子表:cp_member_point_history cp_member_point_history表中字段:cp_point_reward_id 是cp_point_reward的主键id 当本表中的cp_point_reward_id字段为0(即:没有可关联主表的) CREATE TABLE cp_member_poi…

“社群+”生态下的开源AI智能名片源码:驱动商业与社会连接的新引擎

摘要:在“社群”生态日益成为主流趋势的今天,开源AI智能名片源码作为技术创新与社群运营的深度融合体,正逐步展现出其重塑商业格局、深化社会连接的巨大潜力。本文旨在深入探讨开源AI智能名片源码的技术特性、在“社群”生态中的具体应用、对…

Java线程池ThreadPoolExecutor原理、源码分析

目录 为什么要使用线程池? 线程池执行任务的具体流程是怎样的? 线程池的五种状态是如何流转的? 线程池中的线程是如何关闭的? 线程池为什么一定得是阻塞队列? 线程发生异常,会被移出线程池吗&#xff…

【产品那些事】固件安全-关于OTA升级包分析

文章目录 前言什么是OTA?升级包(固件)的类型和架构案例tp-link路由器升级包怎么解包分析?binwalk安装及使用ubi_reader安装及使用unsquashfs安装及使用某车企OTA升级包通用Android OTA解包相关分区第二层解包前言 什么是OTA? OTA(Over-the-Air)是一种通过无线通信网络(…

Golang | Leetcode Golang题解之第237题删除链表中的节点

题目: 题解: func deleteNode(node *ListNode) {node.Val node.Next.Valnode.Next node.Next.Next }

华为“铁三角模式”在数据类项目中的应用和价值

引言:随着信息技术的飞速发展,企业纷纷踏上数字化转型的道路,希望通过数据分析和智能决策来提升企业竞争力。在这一过程中,数据类项目成为关键,它们旨在构建高效的数据治理和分析平台,为企业决策提供有力支…

如何打造高效电子邮件流程?附客户生命周期邮件策略!

一个成功的EDM邮件需要包含多个关键元素,从内容、设计到呼唤行动,每个环节都至关重要。今天咱们来聊聊怎么通过电子邮件,帮那些想要出海的中国中小企业吸引更多客户。别小看这一封封邮件,它们可是连接你和客户的秘密武器&#xff…

Qt模型/视图架构——委托(delegate)

一、为什么需要委托 模型(model)用来数据存储,视图(view)用来展示数据。因此,模型/视图架构是一种将数据存储和界面展示分离的编程方法。具体如下图所示: 由图可知,模型向视图提供数…

react 快速入门思维导图

在掌握了react中一下的几个步骤和语法,基本上就可以熟练的使用react了。 1、组件的使用。react创建组件主要是类组件和函数式组件,类组件有生命周期,而函数式组件没有。 2、jsx语法。react主要使用jsx语法,需要使用babel和webpa…

C/C++蓝屏整人代码

文章目录 📒程序效果 📒具体步骤 1.隐藏任务栏 2.调整cmd窗口大小 3.调整cmd窗口屏幕颜色 4.完整代码 📒代码详解 🚀欢迎互三👉:程序猿方梓燚 💎💎 🚀关注博主&a…

Spring Web MVC入门(2)(请求2)

目录 1.传递JSON数据 传递JSON对象 2.获取URL中的参数PathVariable 3.上传文件RequestPart 4.获取Cookie/Session (1)获取Cookie 简洁获取Cookie (2)获取Session Sesson读取 简洁获取Session(1) 简洁获取Session(2) 5.获取Header 简洁获取Header 1.传递JSON数据 J…

如何写好建模论文

如何写好建模论文 一、 写好数模答卷的重要性 1.评定参赛队的成绩好坏、高低,获奖级别, 数模答卷, 是唯一依据。 2.答卷是竞赛活动的成绩结晶的书面形式。 3.写好答卷的训练,是科技写作的一种基本训练。 二、 答卷的基本内容&…

从零开始学量化~Ptrade使用教程(六)——盘后定价交易、港股通与债券通用质押式回购

盘后固定价交易 实现科创板、创业板的盘后固定价交易,界面如下显示: 交易 输入科创板或创业板代码,选择委托方向,输入委托价格、委托数量,点击“买入”或“卖出”按钮进行委托。可出现一个委托提示框提示是否继续委托操…

QtC++ 设计模式(五)——状态模式

状态模式 序言理解源码 序言 设计模式只是一个抽象的设计模式方法,并不是一个固定使用的搭配,就算是普通switch语句,Map,乃至状态机都是状态模式的其中一种实现方法 状态模式看起来好像和策略模式差不多,主要是其的侧…

MySQL下载安装使用教程图文教程(超详细)

「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。 这一章节我们使…

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【22】【RabbitMQ】

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【22】【RabbitMQ】 Message Queue 消息队列异步处理应用解耦流量控制 消息中间件概念RabbitMQ概念MessagePublisherExchangeQueueBindingConnectionChannelConsumerVirtual HostBroker图…

内容长度不同的div如何自动对齐展示

平时我们经常会遇到页面内容div结构相同页,这时为了美观我们会希望div会对齐展示,但当div里的文字长度不一时又不想写固定高度,就会出现div长度长长短短,此时实现样式可以这样写: .e-commerce-Wrap {display: flex;fle…

WebSocket、服务器推送技术

WebSocket 是一种在单个 TCP 连接上进行 全双工 通信的协议,它可以让客户端和服务器之间进行实时的双向通信,且不存在同源策略限制 WebSocket 使用一个长连接,在客户端和服务器之间保持持久的连接,从而可以实时地发送和接收数据…