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

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.lryc.cn/news/402820.html

相关文章:

  • 矿产资源潜力预测不确定性评价
  • 食堂采购系统开发:从需求分析到上线实施的完整指南
  • C++ 数据结构
  • Elasticsearch:评估搜索相关性 - 第 1 部分
  • 超声波清洗机哪款好用?保姆级教学,教你手把手挑选适合自己的超声波清洗机
  • vscode常用组件
  • IDEA创建普通Java项目
  • 华为“铁三角模式”在数据类项目中的应用和价值
  • P1-AI产品经理--九五小庞
  • PHP手边酒店多商户版平台小程序系统源码
  • 计算机视觉7 kag比赛
  • Go 协程通道使用注意
  • React基础学习-Day04
  • python爬虫获取网易云音乐评论歌词以及歌曲地址
  • 中间件的理解
  • django实现用户的注册、登录、注销功能
  • 【JAVA 常用API】数据库字段存储JSON格式数据,JAVA中如何将List<Entity>或者对象实体转换为字符串
  • AI算不出9.11和9.9哪个大?六家大模型厂商总结了这些原因
  • MacBook电脑远程连接Linux系统的服务器方法
  • CSS-0_3 CSS和单位
  • 【代码随想录|贪心算法 455. 分发饼干 376. 摆动序列 53. 最大子数组和】
  • swift小知识点(二)
  • 机器人产业发展格局多元化,创业公司突破瓶颈需多维施策
  • 接口测试JMeter-1.接口测试初识
  • [米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-22 TPG图像测试数据发生器设计
  • 如何通过企业微信会话存档保护企业利益?
  • git修改提交姓名
  • 5、在共享内存无指针编程:句柄HANDLE转换为指针
  • hive动态分区导致xceivercount超限,hdfs无法创建新连接
  • 如何识别Android init 中的缓慢操作