那就是用 pip-tools,具体方法如下: 1、安装 首先,我们来创建一个虚拟环境,然后使用 pip 安装 pip-tools: python3 -m venv venv source venv/bin /activate pip install pip-tools 2、创建 requirements.in 文件 现在,我们需要创建一个 requirements.in 文件,并且只包含项目的直接依赖项 4、额外功能 除此之外,pip-tools 还提供了其他有用的功能: 1、升级包。 最后的话 好了,你又学到了一个新的技能 pip-tools,是精细化管理依赖库的必备工具 参考资料 [1]文档: https://github.com/jazzband/pip-tools
(PS:pipreqs 也支持这个识别,详见这个合入:https://github.com/bndr/pipreqs/pull/80) pip-tools pip-tools 包含一组管理项目依赖的工具 :pip-compile 与 pip-sync,可以使用命令“pip install pip-tools”统一安装。 pip-sync 命令可以根据 requirements.txt 文件,来对虚拟环境中进行安装、升级或卸载依赖库(注意:除了 setuptools、pip 和 pip-tools 之外)。 请查阅官方文档: https://github.com/bndr/pipreqs https://github.com/damnever/pigar https://github.com/jazzband/pip-tools
package-name $pipenv install package-name==version $pipenv uninstall package-name ``` 3.使用依赖管理工具 步骤: a.安装pip-tools 或者poetry: 在命令行中输入以下命令安装pip-tools: ``` $pip install pip-tools ``` b.创建requirements.in文件并列出项目的依赖包: requirements.in ``` d.安装依赖包: ``` $pip install-r requirements.txt ``` 4.注意版本冲突和兼容性 在使用pip、pipenv、poetry、pip-tools
它的核心目标是极速地替代 pip、pip-tools 和 venv 等工具的功能。 它之所以特别,主要有以下几个原因: 极致的速度: 这是 uv 最引以为傲的特性。 统一工具: uv 旨在将虚拟环境管理(venv)、依赖安装(pip install)、依赖解析和锁定(pip-tools compile)以及环境同步(pip-tools sync)等功能集成到一个工具中 vs pip-tools: uv 的 pip compile 和 pip sync 直接对标 pip-tools 的同名命令。uv 的主要优势在于压倒性的速度。 此外,uv 是一个单一工具,而 pip-tools 是一个依赖于 pip 和 Python 环境的 Python 包。 它以 Rust 带来的极致速度为核心优势,旨在成为 pip、venv 和 pip-tools 的高性能替代品。
该项目的主要功能、关键特性、核心优势: ️ 可以替代常见 pip、pip-tools 和 virtualenv 命令。 ️ 比 pip 和 pip-tools(如 pip-compile 和 pip-sync)快 10 到 100 倍。 全局缓存,节省磁盘空间,避免重复依赖。
-name '*.egg' -exec rm -f {} + } function deps () { assert_env pip install pip-tools pip setuptools pip-compile dev.in } function update () { assert_env # --build-isolation --generate-hashes pip install --upgrade pip-tools command -v pip-sync; then echo "pip-tools not installed" && exit; fi pip-sync requirements/*.txt } function
Pip 的扩展功能Pip 还支持一些扩展功能,比如使用 pipenv 进行更强大的虚拟环境管理,或者使用 pip-tools 管理项目依赖的精确版本。 9.1 使用 Pipenv$ pip install pipenv$ pipenv install9.2 使用 pip-tools$ pip install pip-tools$ pip-compile
所以把他们三个对比一下,为后续选择打下基础 二、介绍 一、工具定义与核心功能对比 1. uv 定位:新一代高性能 Python 包管理工具,由 Rust 开发,目标是替代传统工具链(如 pip、venv、pip-tools 求解器(全局最优) 虚拟环境管理 ✅ 内置 .venv(轻量级) ❌ 需搭配 venv/virtualenv ✅ 内置(含 Python 解释器) 锁文件支持 ✅ uv.lock(跨平台) ❌ 需配合 pip-tools
2.4. pip-tools轻量级工具,引入锁文件机制。 Pipenv整合了 pip、virtualenv 和 pip-tools 的功能,通过Pipfile和Pipfile.lock管理依赖和虚拟环境,自动更新文件。 如果我们的项目只有对Python包的依赖,那么推荐uv和Pixi;如果需要维护多个互斥的环境,那么推荐pip + venv + pip-tools + pyenv;如果需处理无法通过 pip 安装的依赖
Jinja2==2.10 MarkupSafe==1.1.1 python-dateutil==2.8.0 six==1.12.0 Werkzeug==0.14.1 除了上面简单的方法之外,还可以通过pip-tools 再安装pip-tools。 python3venv) $ cat <<EOF > requirements.in > arrow==0.13.1 > Flask==1.0.2 > EOF 然后,使用pip-compile (是pip-tools 有了requirements.txt文件之后,就可以使用pip-sync(也是pip-tools中的一个工具)将虚拟环境中的配置与之同步。 pip freeze arrow==0.13.1 Click==7.0 Flask==1.0.2 itsdangerous==1.1.0 Jinja2==2.10 MarkupSafe==1.1.1 pip-tools
方式二安装工具pip install pip-tools创建文件在应用根目录下创建requirements.in文件,内容如下:flask==2.3.1生成依赖包文件在应用根目录下执行:pip-compile
get_installed_distributions(): call("pip install --upgrade " + dist.project_name, shell=True) 替代方案是使用pip-review,这是一个分叉pip-tools
建议:创建 requirements.txt,其中记载所有依赖的版本号,可以用 pip-tools 完成这一任务。 问题 3:代码的变更会让构建缓存失效 Docker 的层缓存对提高构件速度很有帮助。
对接口用例性能优化引入并行执行(如pytest-xdist),减少执行时间,依赖管理定期更新测试框架和库版本(通过pip-tools或Poetry管理依赖)。
不过,更常见的做法是直接使用国内镜像提供的源列表文件,通过安装pip-tools或编写脚本来动态选择最优的源。
比如,可以使用pip提供的requirements.txt文件来列出项目的依赖包和版本;或者使用第三方工具如pip-tools和poetry来自动解析和管理复杂的依赖关系。5.
2 月,该公司 宣布了 uv,将其描述为“一个极快的 Python 包安装程序和解析器,用 Rust 编写,旨在作为 pip 和 pip-tools 工作流程的直接替代品。” 在这里,它比 pip 和 pip-tools 快 75 倍以上。 当然,Astral 继续更新 Ruff。
另外关于 Python 依赖库的管理(requirements.txt),这篇文章 详细比较了 pip、pipreqs、pigar、pip-tools 和 pipdeptree 等工具,也推荐一读。
pip freeze > requirements.txt 复现环境 pip install -r requirements.txt 2.2 高级依赖管理工具 工具 特点 Java近似工具 pip-tools
--clear Clears caches (pipenv, pip, and pip-tools).