让项目运行在一个独立的局部的 Python 环境中,使采用不同环境的项目互不干扰。
uv
https://github.com/astral-sh/uv
安装
curl -LsSf https://astral.sh/uv/install.sh | sh
windows 可以从 release 页面下载 二进制 uv-x86_64-pc-windows-msvc.zip
https://github.com/astral-sh/uv/releases
设置自动补全
echo 'eval "$(uv generate-shell-completion bash)"' >> ~/.bashrc
卸载
uv cache clean
rm -r "$(uv python dir)"
rm -r "$(uv tool dir)"
rm ~/.local/bin/uv
rm ~/.local/bin/uvx
管理 python
# 查看版本
uv --version
# 查看可用的 Python 版本
uv python list
# 查找已安装的 python
uv python find
uv python find 3.12
# 安装指定版本
uv python install 3.12
# 设置当前项目固定 python 版本 (写入`.python-version`)
uv python pin 3.13
创建基本项目、管理依赖
uv python pin 3.13
uv init
% tree
.
├── README.md
├── main.py
├── .python-version
├── .gitignore
├── .git
└── pyproject.toml
1 directory, 3 files
pyproject.toml
内容如下
[project]
name = "01"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = []
添加依赖
uv add flask
pyproject.toml
内容会添加 flask 部分
[project]
name = "01"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"flask>=3.1.0",
]
# 添加指定版本
uv add pandas==2.2
# 移除依赖
uv remove flask
# 查看依赖树
uv tree
运行项目
uv run main.py
pyenv
https://github.com/pyenv/pyenv
安装
curl -fsSL https://pyenv.run | bash
windows 安装
https://github.com/pyenv-win/pyenv-win
pip install pyenv
更新
pyenv update
用法
pyenv shell <version# 查看当前已安装的 python 版本
pyenv versions
# 安装指定版本
pyenv install 3.12
# 切换当前目录 python 版本(写入 `.python-version`)
pyenv local <version>
# 切换当前会话 python 版本
pyenv shell <version>
# 切换当前用户的全局 python 版本
pyenv global <version>
使用虚拟环境
# 创建(不需要指定目录)
pyenv virtualenv 3.12 myproj3.12
# 激活
pyenv activate myproj3.12
# 退出
pyenv deactivate
# 删除
pyenv uninstall myproj3.12
venv
python 发行版自带的 python 包,可以直接使用。
python -m venv venv
直接创建 一个虚拟环境到文件夹 venv。
激活虚拟环境
venv/Scrpits/activate
使用时可也可以通过改变 python 路径实现:
venv/bin/python xxx.py
virtualenv
pip install virtualenv
创建
# 创建名为 ENV 的虚拟环境
virtualenv ENV
创建后在当前路径下生成名为ENV
的文件夹。
可选参数
# 指定 Python 版本
-p
# 继承系统三方库
--system-site-packages
进入/退出
进入虚拟环境可执行ENV/Script/activate
脚本。
# linux
cd ENV
source bin/activate
# windows
ENV/Script/activate.bat
退出时执行ENV/Script/deactivate
脚本。
# linux
deactivate
# windows
ENV/Script/deactivate.bat
删除
直接删除对应的目录即可。
项目交付
方案一:
- 连同虚拟环境和项目一起拷贝给他人
方案二:
- 在虚拟环境中,冻结依赖需求文本
- 把项目和依赖需求文本给他人
- 他人在本地创建一个新的虚拟环境,并根据依赖需求文本安装相关库
# 冻结项目需求文本
pip freeze > requirements.txt
# 安装项目依赖库
pip install -r requirements.txt
virtualenvwrapper
pip install virtualenvwrapper
对 virtualenv 的使用封装,更加方便的去使用 virtualenv。包的安装及虚拟环境的操作依然是分离的。并未具备对项目包的依赖管理及需求文本的生成操作封装。
创建并激活
mkvirtualenv venv1
虚拟环境中切换
workon venv2
关闭
deactivate
删除
rmvirtualenv env1
列出所有已创建
lsvirtualenv
pipenv
pip install pipenv
基于项目的虚拟环境管理。
- 是 pip + virtualenv 结合体,解决了 virtualenvwrapper 弊端
- 自动帮你创建虚拟环境,以及安装三方库
- 自动的记录你的项目依赖的所有三方库
- 使用 pipfile 和 pipfile.lock取代了 requirements.txt
创建
# cd 到项目文件夹
pipenv --two
# 或者
pipenv --three
# 查看位置:
pipenv --where
# 查看虚拟环境位置:
pipenv --venv
# 查看解析器信息:
pipenv --py
激活
# 项目文件夹下
pipenv shell
激活后使用pipenv
代替pip
,如:
pipenv install requests
安装依赖后会生成Pipfile
和Pipfile.lock
文件。
查看依赖结构
pipenv graph
退出
exit
# 或者直接关闭 shell
删除
# cd 进 pipfile 文件的目录
pipenv --rm
项目交接
上传:
应该包括文件有:
- 包和模块源码
- Pipfile 和 Pipfile.lock
拿到共享:
- cd 进入获取的项目文件夹目录内
- 检查项目是否具有Pipfile 和 Pipfile.lock 文件
- 执行命令:
pipenv install