7.包管理工具
Pypi全称Python Package Index是 Python 官方的第三方软件包仓库软件包是以构建后的分发包.whl和.tar.gz形式存在。pip install 默认就是去 PyPI 上搜索、下载并安装这个包的。pip install 把从远程仓库下载得到的 .whl 顺便解压部署到 site-packages。build命令Build构建 指的是将你的原始源代码转换成可分发的标准安装包的过程。源代码按照 Python 社区标准打包成.whl【ZIP格式】和.tar.gz两个文件。Build 不是把 Python 编译成机器码不像 C/C而是把散落的文件按 PEP 标准打包归档。纯 Python 包的.whl里仍然是.py文件只是被组织成了标准目录结构。工具本质上是一个以解决特定任务为目标、通过命令行或脚本调用的可执行程序。它不是一个技术类型而是一个使用形态——同样的.py代码封装方式不同可以是库、可以是工具、也可以是 Web 服务。1.conda环境隔离【虚拟环境】、依赖管理【能安装非 Python 底层依赖】、多语言支持。工具管理范围优势短板CondaPython 系统底层库 (CUDA/MKL 等)科学计算、深度学习、多 Python 版本普通轻量小库更新慢pip仅 Python 纯代码包第三方 Python 库最全、更新快无法解决 C/C 底层依赖安装curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh bash Miniconda3-latest-MacOSX-x86_64.sh # conda 临时不生效 conda deactivate必要性uv/pip只能安装 Python 包。如果某个 Python 包依赖系统级的共享库如libgdal,ffmpeg,cuda-toolkit,mkl你必须自己在操作系统层面手动安装它们或者祈祷 pip 下载的 wheel 包里捆绑了所有动态链接库。Conda:它是一个通用的包管理器。它可以安装 Python 解释器本身也可以安装 C/C 编译器、CUDA 运行时、R 语言、PostgreSQL 客户端等。# 新建一套隔离的 Python、pip、各类依赖包不同环境包互不干扰是运行环境,非项目目录 conda create -n myenv python3.10 # 创建环境时直接安装包 conda create -n myenv python3.10 numpy pandas scikit-learn # 激活 / 退出环境 conda activate myenv # deactivate 命令后不需要显式提供环境名 conda deactivate # 查看当前所有环境列表 conda env list # 或 conda info --envs # 克隆已有环境 conda create -n new_env --clone old_env # 删除环境 conda remove -n myenv --all # 导出环境配置推荐用显式依赖而非全量导出 conda env export environment.yml # 完整导出含版本号 conda env export --from-history env.yml # 仅导出手动安装的包更干净 # 从文件创建环境 conda env create -f environment.yml 以下为包管理命令 # 在当前环境中安装包 conda install numpy pandas # 安装指定版本 conda install numpy1.24.3 # 从特定 channel 安装 conda install -c conda-forge gdal # 卸载包 conda remove numpy # 更新包 conda update numpy # 更新单个包 conda update --all # 更新环境中所有包 # 搜索包查看可用版本和来源 conda search numpy # 查看已安装的包 conda list # 当前环境 conda list -n myenv # 指定环境当激活某个环境后【执行命令 conda activate langchain_v1.2】终端会显示该环境名所以conda deactivate 不需要显式指定环境名该命令执行完毕后终端就不会显示该环境名。1.1.仓库在 Conda/Anaconda 生态中Channel频道本质上就是一个软件包的仓库源。你可以把它理解为手机上的“应用商店”或 Linux 中的“软件源”。Conda 从你配置的 Channel 中搜索、下载和安装包。Anaconda 的专属商业仓库 defaultshttps://repo.anaconda.com/pkgs/main https://repo.anaconda.com/pkgs/r #R语言商业仓库 https://repo.anaconda.com/pkgs/msys2 # 仅 Windows社区仓库 (conda-forge)开源免费、与 defaults 高度兼容但混用时偶尔可能出现依赖冲突。# 从 conda-forge 安装 pandas conda install -c conda-forge pandas # 同时从多个 channel 搜索按优先级从左到右 conda install -c pytorch -c nvidia pytorch-cuda #查看当前配置的 Channel conda config --show channels #永久添加 Channel推荐 # 添加 conda-forge 并设为高优先级 conda config --add channels conda-forge conda config --set channel_priority strict2.pip包管理# 1. 创建虚拟环境 .venv 里面包含独立Python环境需要的所有文件 python3 -m venv .venv # 2. 激活环境Mac / Linux source .venv/bin/activate # 激活后终端会出现 (.venv)此时 pip 只会装在这个环境里 pip install requests # 3. 退出虚拟环境 deactivate # 不用了直接删除整个文件夹即可清理 rm -rf .venv它和 conda 的区别venvPython 原生自带只管理 Python 与 Python 包不能管理 CUDA、C 库、不同 Python 大版本。conda独立工具可以安装不同版本 Python、底层编译依赖cuda、ffmpeg 等。有了虚拟环境保证每个项目拥有专属的Python运行环境不同环境下相同包不同版本就不会出现冲突等问题。pip install flask #全局安装flask模块 pip show flask #展示模块flask的详情版本号、包所在的全局路径sys.path是 Python 的模块搜索路径列表Python 导入import xxx时会按顺序遍历这个列表里的文件夹寻找你要导入的包 / 脚本。pip install只会把第三方包安装到 site-packagessite-packages 只是 sys.path 其中一条路径。将依赖列表方便准确的分享pip3 freeze - requirements.txt pip3 install -r requirements.txt #安装requirements.txt中依赖项缺点freeze指令无法区分直接依赖项 or 间接依赖项。例如pip3 install flask 只有一个依赖但是requirements.txt文件包含间接依赖具体如下这样依赖项比较多时分享安装很麻烦。blinker1.9.0 click8.4.2 Flask3.1.3 itsdangerous2.2.0 Jinja23.1.6 MarkupSafe3.0.3 Werkzeug3.1.8并且uninstall卸载依赖时只能卸载flask依赖包其产生的间接依赖并不会被卸载。优化方案之pyproject.toml文件【pyproject.toml管理项目依赖】[project] name python dependencies [ Flask3.1.3 ]项目根目录下执行以下命令安装pip3 install -e . 。pyproject.toml管理项目依赖的缺点不能通过pip3等命令安装依赖只能手动查找官方相关依赖的版本号并手动写入pyproject.toml文件中。解决办法uv or poetry or pdm 命令工具替代pip3等相关命令。3.UVuv or poetry or pdm 这些命令其实是对pip3命令的高级封装其核心目的就是将我们从繁琐的环境和依赖中解放出来。使用这些高级命令时项目中必须将解释器配置成虚拟环境下的解释器而非全局解释器。uv add flask # 该命令直接包含以下命令所有功能 python -m venv .venv source .venv/bin/avtivate edit pyproject.toml pip3 install -e . uv sync #当拿到别人项目后执行该命令则自动基于pyproject.toml文件创建虚拟环境、各项依赖等 uv run xxx.py #等价于 python xx.py当然在uv环境下同样可以执行python相关命令。uv python list #输出uv支持的所有Python版本 uv python install cpython-版本号 #uv安装指定版本的python uv run -p 3.12 xx.py #指定python版本运行脚本程序 uv run -p 3.12 python #进入交互页面 uv init -p 3.13 #在项目根目下自动生成 Python 项目基础骨架包含pyproject.toml、虚拟环境等 uv add flask #安装依赖并且将其添加到pyproject.toml文件中 uv run xx.py # 因为Init指定了版本号uv运行脚本时无需指定版本号直接运行脚本 uv tree #打印依赖树 ruff check #检查代码是否符合编码规范 uv add ruff --dev #将工具ruff作为依赖下载下来--dev 避免打包时将ruff工具打包进去进而携带到线上环境 uv remove ruff --dev uv tool install ruff # 安装工具的方式安装工具到系统中这些工具脱离当前工程独立运行。此种方式安装的工具整个系统可用 uv tool list将代码编译成可以直接运行的工具

相关新闻

G-Helper无法启动怎么办?5个步骤快速修复华硕控制工具启动闪退

G-Helper无法启动怎么办?5个步骤快速修复华硕控制工具启动闪退

G-Helper无法启动怎么办?5个步骤快速修复华硕控制工具启动闪退 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zen…

2026/10/2 4:54:35 阅读更多 →
gerbv 免费开源 Gerber 文件查看器:PCB 打样前检查制造文件的完整指南

gerbv 免费开源 Gerber 文件查看器:PCB 打样前检查制造文件的完整指南

gerbv 免费开源 Gerber 文件查看器:PCB 打样前检查制造文件的完整指南 【免费下载链接】gerbv Maintained fork of gerbv, carrying mostly bugfixes 项目地址: https://gitcode.com/gh_mirrors/ge/gerbv PCB 设计在 EDA 软件里看着一切正常,不代…

2026/9/30 20:28:21 阅读更多 →
现代 CSS 升级,要给旧 WebView 留基础布局

现代 CSS 升级,要给旧 WebView 留基础布局

现代 CSS 升级,要给旧 WebView 留基础布局 引入 subgrid、动态视口单位之前,先看目标浏览器与 WebView 覆盖范围。新语法能让代码更干净,但不能拿旧环境的基本可用性换这点整洁。 升级时把现代实现作为渐进增强,并保留能工作的 Gr…

2026/10/6 21:36:12 阅读更多 →

最新新闻

nano代替vim:Linux新手与运维的终端编辑新选择

nano代替vim:Linux新手与运维的终端编辑新选择

1. 别再被vim劝退了:聊聊nano代替vim这件事先说说我自己的经历。刚接触Linux那会儿,我听到最多的一句话就是“你必须学会vim,因为你迟早要在终端里改配置”。于是我硬着头皮看了不少教程,记住了i进入插入模式、Esc退出、:wq保存&a…

2026/10/10 6:34:57 阅读更多 →
Flask + SQLAlchemy 实战:从数据模型到查询优化的完整指南

Flask + SQLAlchemy 实战:从数据模型到查询优化的完整指南

简介:面向优达学城全栈开发课程的Fyyur项目源码,主要服务于正在学习Flask与PostgreSQL数据建模的开发者。项目围绕音乐演出场地和艺术家预约网站展开,要求为现有视图与控制器补齐数据模型,实现对场所、艺术家及表演场次的创建、检…

2026/10/10 6:34:57 阅读更多 →
Exadata X9M数据库一体机全解读:从原理到落地的避坑指南

Exadata X9M数据库一体机全解读:从原理到落地的避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 6:34:57 阅读更多 →
Unity反编译实战:用dnSpy分析并修改游戏代码

Unity反编译实战:用dnSpy分析并修改游戏代码

简介:dnSpy是一款功能强大的.NET程序反编译与调试工具,专为Unity开发者、游戏引擎研究者及希望从现有软件中学习代码逻辑的技术人员准备。借助该工具,可直接打开并分析Unity项目生成的C#程序集(dll),还原类…

2026/10/10 6:34:57 阅读更多 →
Fyyur实战:Flask全栈项目从跑通到ORM进阶与避坑指南

Fyyur实战:Flask全栈项目从跑通到ORM进阶与避坑指南

简介:Fyyur-Udacity-Project是Udacity全栈开发课程中的音乐演出场地与艺术家预定网站项目,适合正在学习Flask、PostgreSQL和Web API设计的开发者。该项目已具备视图与控制器,但缺少数据模型和数据库交互能力,学习重点在于补全模型…

2026/10/10 6:34:57 阅读更多 →
Spring Boot+微信小程序高校共享图书借阅系统实战解析

Spring Boot+微信小程序高校共享图书借阅系统实战解析

去年帮某高校的一位学弟做毕设,对方只丢过来一句话:“想做一个高校共享图书借阅的小程序,后端用Spring Boot。”这句话听起来不难,但真正动手才发现,共享借阅这事儿背后藏着一整条业务链:用户身份认证、图书…

2026/10/10 6:33:57 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →