Python中的虚拟环境
虚拟环境是独立的Python环境,拥有自己的site-packages
。基本上,这意味着每个虚拟环境都有自己的一套依赖于第三方包的库,这些包通常是从PyPI安装的。
如果您在同一台机器上开发多个Python项目,虚拟环境会非常有帮助。此外,当您将Python代码分发给他人或在服务器上时,虚拟环境可以方便地重现与开发机器相同的环境。
今天,我们将学习
- 有哪些工具可以创建独立的环境
- 哪些工具可以帮助进行Python项目中的包管理
开始使用
什么是uv
?
在过去的几年中,Python 开发者使用 venv
和 pip
来创建虚拟环境和管理包。然而,uv
是一个新工具,它结合了虚拟环境和包管理的最佳特性。它是一个现代化的工具,帮助您在 Python 项目中创建隔离的环境并管理包。它是用 Rust 编写的,由 Astral 维护。
安装 uv
安装 uv
非常简单。它甚至已经发布在 PyPI 上,因此您可以使用 pip
进行安装:
pip install uv
有关不同安装方法的更多信息,请查看官方文档。
初始化项目
uv
提供了一个 init
命令,可以创建一个新的 Python 项目,并生成一个 pyproject.toml
文件,以及一个 .gitignore
文件、一个 README.md
文件和一个 hello.py
文件。
uv init my-test-project
管理 Python 版本
除了经典的 pip
,uv
还为您管理 Python 解释器的版本。
通过
uv python list
您可以获得系统上所有可用 Python 版本的列表。安装其他版本也同样简单
uv python install 3.10.0
管理依赖
uv
使用 pyproject.toml
文件来管理依赖。您可以通过以下命令添加依赖:
uv add requests
包名称与 PyPI 上的名称相同。
使用 uv lock
,您可以创建一个包含所有依赖项及其版本的 Lockfile
。该文件可用于在其他机器上安装完全相同的版本。
uv sync
uv sync
是一个从 pyproject.toml
文件安装所有依赖项的命令。它类似于 pip install -r requirements.txt
。
临时环境
uv
的一个杀手级特性是能够创建临时环境。这意味着您可以通过一个命令创建一个新环境并在其中运行 Python 脚本。
假设我们想要一个使用 requests
包的 Python 3.10 项目。我们可以通过以下方式创建一个新环境:
使用 pyenv
和 pip
,我们需要创建一个新的虚拟环境,激活它,并安装该包:
pyenv install 3.10
pyenv local 3.10
python -m venv .venv
source .venv/bin/activate
pip install requests
python hello.py
使用 uv
,可以通过一个命令完成此操作:
uv run --python 3.10 --with requests python hello.py
结论
uv
是一个现代工具,结合了虚拟环境和包管理的最佳特性。它是管理您 Python 项目依赖关系的绝佳工具。试试看,告诉我您的想法!