Python的虚拟环境管理器。
项目描述
uvenv
- uv的工作流程工具。
uvenv
命令是 uv
命令的包装器。它提供了一个简单的界面来管理Python项目,受pipenv等工具的启发,但使用requirements.txt
和requirements.in
文件。
注意: 这是一个正在进行的 工作。某些功能可能尚未完全实现,并可能发生变化。
项目结构
uvenv
假设以下项目结构
requirements.in
— 包含要安装的包的文件。requirements.txt
— 包含要安装的包的确切版本的锁文件。.venv
— 包含虚拟环境的目录。
uvenv
将自动通过在当前目录及其父目录中搜索这些文件来发现项目根目录。
环境变量
uvenv
允许您使用环境变量自定义关键文件和目录的位置
UVENV_REQUIREMENTS_IN
: 指定要求输入文件的位置(默认:requirements.in
)UVENV_REQUIREMENTS_TXT
: 指定要求锁文件的位置(默认:requirements.txt
)UVENV_VENV_DIR
: 指定虚拟环境目录的位置(默认:.venv
)UVENV_UV
: 指定uv
可执行文件的路径(默认:uv
)UVENV_PYTHON
: 指定要使用的Python解释器(默认:python
)
例如,要使用不同的名称来命名您的需求文件
$ export UVENV_REQUIREMENTS_IN=requirements-dev.in
$ export UVENV_REQUIREMENTS_TXT=requirements-dev.txt
$ export UVENV_VENV_DIR=~/.venvs/myproject
$ uvenv install
命令
uvenv
目前提供以下主要命令
uvenv install
— 安装requirements.in
中的软件包。uvenv uninstall
— 卸载requirements.in
中的软件包。uvenv lock
— 生成或更新requirements.txt
中的锁文件。
理念
- 简洁性:
uvenv
旨在为管理 Python 项目提供简单直观的界面。 - 速度:
uvenv
利用 uv 的速度进行依赖关系管理和虚拟环境创建。 - 灵活性:
uvenv
旨在灵活且支持各种项目结构和工作流程。 - 兼容性:
uvenv
旨在与各种 Python 版本和平台兼容。 - 极简主义:
uvenv
旨在保持极简并避免不必要的复杂性。 - 强大功能:
uvenv
旨在提供强大的功能来管理 Python 项目。 - 社区:
uvenv
旨在由社区驱动并开源。
功能
- 自动查找项目根目录
- 虚拟环境管理
- 依赖关系安装和卸载
- 需求锁定
- 在虚拟环境中运行命令
- 激活虚拟环境的交互式 shell
安装
要安装 uvenv
,您需要 Python 3.6+ 和 uv。然后,您可以使用 pip 安装 uvenv
$ pip install uvenv-cli
用法
uvenv
提供以下命令
安装
安装依赖项或特定软件包
$ uvenv install
$ uvenv install <package1> <package2>
卸载
删除特定软件包
$ uvenv uninstall <package1> <package2>
锁定
生成或更新 requirements.txt
$ uvenv lock
帮助
显示帮助信息
$ uvenv --help
项目结构
uvenv 期望您的项目在项目根目录下具有 requirements.txt
或 requirements.in
文件。它将自动通过在当前目录及其父目录中搜索这些文件来查找项目根目录。
用法
-
启动新项目
$ mkdir myproject $ cd myproject $ echo "requests==2.26.0" > requirements.in $ uvenv install
-
添加新软件包
$ uvenv install numpy
-
删除软件包
$ uvenv uninstall requests
-
更新已锁定需求
$ uvenv lock
即将推出的功能
-
运行 Python 脚本
$ uvenv run python myscript.py
-
启动交互式 shell
$ uvenv shell
贡献
欢迎贡献!请随时提交 Pull Request。
许可证
此项目将根据 MIT 许可证授权。
项目详情
关闭
uvenv_cli-0.1.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2d5edda7665fd29be3b5e76393630e6166616396269861e82b96a5868bd11563 |
|
MD5 | bd7b9499b36991064c90d7ad5b035308 |
|
BLAKE2b-256 | 3db3c196e1b8971ec8a1fb531ce15e87cd6527778bb6fe867df712c774f8f2a5 |