前言
几个月前在V2EX吐槽,我的python依赖包管理,从pip开始,为了方便,切换到pipenv,之后pipenv安装依赖有点问题,之后学习了poetry,但是peotry又出现了一些依赖问题,最后还是用回了pip。
之后看到有人回复推荐rye和uv,于是又继续学习了新的依赖包管理器。下面做了一个命令速查表,方便使用。
如何安装rye
windows可以从这里下载 https://rye.astral.sh/guide/installation/
macos和linux只需要输入下面命令即可:
1 | curl -sSf https://rye.astral.sh/get | bash |
下载安装完后,需要把rye主目录下的Shims路径添加进环境变量
1 | echo 'source "$HOME/.rye/env"' >> ~/.bashrc |
如何设置代理
可以为rye设置代理:
1 | rye config --set proxy.http=http://127.0.0.1:7890 |
如何取消代理:
1 | rye config --unset proxy.http |
如何启用uv
uv 是一款用 Rust 编写的,性能优秀的 Python 包安装和解析工具,被设计用于替代 pip 和 pip-tools。
1 | rye config --set-bool behavior.use-uv=true |
如何列出所有可用的 Python 版本
1 | rye toolchain list --include-downloadable |
如何初始化项目
1 | rye init |
如果需要特定版本的python,可以使用-p
参数指定特定版本python
1 | rye init -p cpython@3.11 |
PS:python3.11比之前版本的python的性能要好。
如果想创建一个脚本型项目,需要加上--script
参数
1 | rye init --script |
如果想为你的脚本或web创建项目,可以加上--virtual
参数。
1 | rye init --virtual |
虚拟项目是本身不是可安装的Python包的项目,但会同步它们的依赖项。它们像pyproject.toml中的普通python包一样声明,但它们不创建包。相反,tool.rye.virtual
键设置为true
。
这也是我最常用初始化rye项目的方式。
如何初始化依赖
初始化项目后,可以使用rye sync
指令初始化依赖,此时就会在当面目录下创建一个.venv
文件夹:
1 | rye sync |
如何添加依赖包
使用rye add
命令安装依赖包,例如安装django的命令:
1 | rye add django |
如何移除依赖包
使用rye remove
命令移除依赖包:
1 | rye remove django |
如何运行rye项目中的的命令
使用rye run
可以运行.venv
中提供的脚本或应用程序,也可以运行Rye特定的脚本。
1 | rye run django-admin |
在不带参数的情况下打开它以查看所有可用的脚本,例如:
1 | $ rye run |
如何添加pypi镜像
使用rye config --show-path
命令取得配置文件路径。用文本编辑器打开配置文件,并添加如下内容:
1 | [[sources]] |
此外,也可以在项目文件 pyproject.toml 中进行设置:
1 | [[tool.rye.sources]] |