托管多版本 Python runtime 与命名虚拟环境的命令行工具
Project description
pyvv
欢迎来到 Python Version,这是一个支持 Python 多版本项目。
当前版本采用 托管 runtime + 多命名 venv 的混合方案:
pyvv <version>先让uv下载并定位对应 Python- 把完整 Python 运行时复制到
~/.pyvv/runtimes/<version>/python-home/ - 再基于这个私有 runtime 创建一个或多个虚拟环境:
~/.pyvv/runtimes/<version>/envs/<name>/ - 日常执行、
pip install、脚本运行都走指定名字的私有 venv - 通过
-n <name>或--name <name>可以在同一个 Python 版本下创建多个环境 - 如果某个环境损坏,pyvv 会自动重建该环境;如果 runtime 损坏,pyvv 会重建 runtime
关于 uv
当前版本下载和定位 Python 依赖 uv 作为后端,因此安装 pyvv 时会同时安装 uv。
不过 pyvv 在日常使用时并不是简单把环境直接挂在 uv 上,而是:
- 先把 Python runtime 复制到自己的目录
- 再基于这个私有 runtime 创建命名虚拟环境
所以即使后续 uv 的原始 runtime 被清理,pyvv 自己托管的环境仍然可以继续使用。
后续版本有可能进一步去掉对 uv 的依赖,把 Python 下载、索引、解压和托管全部收进 pyvv 内部。
目录结构示例
~/.pyvv/
runtimes/
3.14/
python-home/
python.exe
Lib/
DLLs/
envs/
default/
Scripts/
python.exe
pip.exe
data/
Scripts/
python.exe
pip.exe
常用示例
pyvv 3.14
pyvv 3.14 -n data
pyvv 3.14 --name data pip list
pyvv 3.14 -n web pip install fastapi
pyvv 3.14 -n web hello.py
pyvv 3.14 -n web -m http.server
pyvv remove 3.14 -n data
如果你要运行像 ipython 这样的环境命令,先安装对应包:
pyvv 3.14 -n web pip install ipython
pyvv 3.14 -n web ipython
说明
- 不写
-n/--name时,默认环境名是default - 只有删除某个版本下最后一个环境时,pyvv 才会顺带清理该版本的 runtime
- pyvv 会自动判断你要执行的是 pip、Python 参数、Python 脚本还是环境命令
命令列表
【pyvv help】 查看帮助
【pyvv list】 查看已安装/可安装的 Python 版本
【pyvv mirror】 给全局 pip 设置清华镜像源
【pyvv 3.14】 进入 Python3.14 默认环境
【pyvv 3.14 -n data】 进入 Python3.14 的 data 环境
【pyvv 3.14 --name data pip list】 在指定环境运行 pip 命令
【pyvv 3.14 hello.py】 通过当前环境运行脚本 hello.py
【pyvv 3.14 -m http.server】 直接传递给 Python 自身参数
【pyvv remove 3.14】 删除 Python3.14 的默认环境
【pyvv remove 3.14 -n data】 删除 Python3.14 的 data 环境
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyvv-2.0.0.tar.gz.
File metadata
- Download URL: pyvv-2.0.0.tar.gz
- Upload date:
- Size: 9.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.27.0 CPython/3.12.10 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
699bb2f99c00808e6cf7f962f4a0cb9c4865381c5da0d8be1297520ad55d3ea9
|
|
| MD5 |
727802b60c02aed5cad0293109973f49
|
|
| BLAKE2b-256 |
12de0bbbac8226262cc32e4c9a59d50feaf0829071cd524bcbe3cd2c494c3006
|
File details
Details for the file pyvv-2.0.0-py3-none-any.whl.
File metadata
- Download URL: pyvv-2.0.0-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.27.0 CPython/3.12.10 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2acd543da28128e8d6414e962ff698e0f590fe8eb3123a14cc126d6ffa47708a
|
|
| MD5 |
940d907e831b0d12b1d7ed91f1491110
|
|
| BLAKE2b-256 |
44456b7d809bb50bf3a56d8f8c76eef5335e311df490d3ad8f7038ed8216cde1
|