Rye完整使用教学
官方网址: https://rye.astral.sh/
主题总结:
- Rye 安装与配置
- 安装
rye工具并配置环境。 - 配置
pyproject.toml和锁定文件rye.lock。
- 安装
- Rye 工作区 (
workspaces)- 创建、切换和管理工作区。
- 为不同的开发环境或 CI 环境使用独立的工作区。
- 虚拟环境管理 (
virtual)- 创建、激活、查看和删除虚拟环境。
- 使用虚拟环境隔离项目依赖。
- 依赖管理与安装 (
deps)- 使用
rye add添加依赖。 - 管理不同的依赖类型(普通依赖、开发依赖等)。
- 使用
- 同步依赖 (
sync)- 使用
rye sync同步项目的依赖。 - 使用
--with-sources选项来包含源代码文件。
- 使用
- 全局工具与命令 (
shims)- 安装并使用全局命令(shims)来简化工具管理。
- 查看和卸载全局工具。
- 发布项目 (
publish)- 使用
rye publish将 Python 项目发布到包管理平台(如 PyPI)。
- 使用
- Rust 集成 (
rust)- 在
rye中安装和使用 Rust 工具链。 - 在 Python 项目中集成 Rust 扩展。
- 在
- Docker 与 Rye 集成
- 在 Docker 中配置和使用
rye,管理依赖和虚拟环境。
- 在 Docker 中配置和使用
- 配置源仓库 (
sources)- 添加、删除和查看项目的依赖源仓库。
- 配置和管理私有或自定义源。
1.Rye 安装与配置
- 安装 ****
rye:- 使用以下命令在系统中安装
rye:curl -sSL https://rye.astral.sh/get.sh | bashwindows直接 安装官网提供的: rye-x86_64-windows.exe
curl -sSL https://rye.astral.sh/get.sh | bash
- 使用以下命令在系统中安装
- 配置项目:
- 初始化一个新的 Python 项目:
rye initrye init
- 初始化一个新的 Python 项目:
- 查看
pyproject.toml文件:- 这是项目的主要配置文件,其中定义了依赖、工具链等。
2.Rye 工作区 (workspaces)
- 创建工作区:
- 创建一个新的工作区:
rye workspace new <workspace-name>rye workspace new <workspace-name>
- 创建一个新的工作区:
- 切换工作区:
- 切换到一个已有的工作区:
rye workspace use <workspace-name>rye workspace use <workspace-name>
- 切换到一个已有的工作区:
- 查看当前工作区:
- 查看当前激活的工作区:
rye workspacerye workspace
- 查看当前激活的工作区:
- 删除工作区:
- 删除一个工作区:
rye workspace remove <workspace-name>rye workspace remove <workspace-name>
- 删除一个工作区:
3.虚拟环境管理 (virtual)
- 创建虚拟环境:
- 创建一个新的虚拟环境:
rye virtual new <env-name>rye virtual new <env-name>
- 创建一个新的虚拟环境:
- 激活虚拟环境:
- 激活某个虚拟环境:
rye virtual use <env-name>rye virtual use <env-name>
- 激活某个虚拟环境:
- 查看所有虚拟环境:
- 列出所有虚拟环境:
rye virtual listrye virtual list
- 列出所有虚拟环境:
- 删除虚拟环境:
- 删除某个虚拟环境:
rye virtual remove <env-name>rye virtual remove <env-name>
- 删除某个虚拟环境:
4.依赖管理与安装 (deps)
- 添加依赖:
- 将依赖包添加到项目中:
rye add <package-name>rye add <package-name>
- 将依赖包添加到项目中:
- 添加开发依赖:
- 将依赖添加为开发依赖(如测试框架):
rye add <package-name> --devrye add <package-name> --dev
- 将依赖添加为开发依赖(如测试框架):
- 指定版本的依赖:
- 安装特定版本的依赖:
rye add <package-name>==<version>rye add <package-name>==<version>
- 安装特定版本的依赖:
5.同步依赖 (sync)
- 同步项目的依赖:
- 同步项目依赖并安装所有缺少的包:
rye syncrye sync
- 同步项目依赖并安装所有缺少的包:
- 使用
--with-sources同步源代码:- 在同步时包括源代码文件:
rye sync --with-sourcesrye sync --with-sources
- 在同步时包括源代码文件:
6.全局工具与命令 (shims)
- 安装全局工具:
- 使用
rye安装全局工具(例如,格式化工具black):rye install blackrye install black
- 使用
- 查看已安装的全局工具:
- 列出所有安装的全局工具:
rye listrye list
- 列出所有安装的全局工具:
- 卸载全局工具:
- 卸载一个全局工具:
rye uninstall blackrye uninstall black
- 卸载一个全局工具:
7.发布项目 (publish)
- 构建项目:
- 在发布前,先构建项目:
rye buildrye build
- 在发布前,先构建项目:
- 发布到 PyPI:
- 将项目发布到 PyPI 或其他包仓库:
rye publishrye publish
- 将项目发布到 PyPI 或其他包仓库:
- 配置 PyPI 登录:
- 配置 PyPI 的认证信息:
pysetup config pypipysetup config pypi
- 配置 PyPI 的认证信息:
8.Rust 集成 (rust)
- 安装 Rust 工具链:
- 使用
rye安装 Rust 工具链:rye toolchain install rustrye toolchain install rust
- 使用
- 为 Python 项目配置 Rust:
- 将 Rust 集成到 Python 项目中,通常用于构建本地扩展:
rye toolchain use rustrye toolchain use rust
- 将 Rust 集成到 Python 项目中,通常用于构建本地扩展:
9.Docker 与 Rye 集成
- 安装 Rye 到 Docker 容器中:
- 在 Dockerfile 中安装
rye:RUN curl -sSL https://rye.astral.sh/get.sh | bashRUN curl -sSL https://rye.astral.sh/get.sh | bash
- 在 Dockerfile 中安装
- 同步项目依赖:
- 在 Dockerfile 中同步项目依赖:
COPY pyproject.toml . COPY rye.lock . RUN rye syncCOPY pyproject.toml . COPY rye.lock . RUN rye sync
- 在 Dockerfile 中同步项目依赖:
- 运行项目:
- 在 Docker 容器中运行 Python 项目:
CMD ["rye", "run", "python", "main.py"]CMD ["rye", "run", "python", "main.py"]
- 在 Docker 容器中运行 Python 项目:
10.配置源仓库 (sources)
- 添加源仓库:
- 为项目添加自定义的依赖源:
rye sources add <source-url>rye sources add <source-url>
- 为项目添加自定义的依赖源:
- 查看所有配置的源:
- 列出所有已添加的源:
rye sources listrye sources list
- 列出所有已添加的源:
- 删除源仓库:
- 删除某个源:
rye sources remove <source-url>rye sources remove <source-url>
- 删除某个源:
完整项目使用案例
基于
fastapi开发项目,采用格式化工具,并配置镜像源加速,最后配合pyinstaller进行项目打包,还要给出 rye script的使用(采用rye run build-exe打包exe,采用rye run web运行fastapi项目,采用rye run lint进行代码检查, 采用rye run format进行项目代码格式化)
下面是一个完整的 FastAPI 项目案例,演示如何使用rye来管理整个项目的开发流程,包括初始化项目、安装依赖、使用格式化工具、配置清华源加速、打包成 EXE 文件等。
1. 项目初始化
首先,初始化一个新的FastAPI项目,并使用rye来管理依赖和工具。
步骤:
- 创建新项目目录: 在终端中创建一个新的项目目录并进入该目录
mkdir fastapi_project cd fastapi_project - 初始化项目: 使用
rye初始化 Python 项目rye init - 初始化
rye.lock文件rye sync
2. 安装依赖
我们需要安装以下依赖:
fastapi: FastAPI 框架。uvicorn: ASGI 服务器,用于运行 FastAPI 应用。black: 代码格式化工具。flake8: 代码检查工具。pyinstaller: 用于打包成 EXE 文件。
步骤:
- 安装 FastAPI 和 Uvicorn:
rye add fastapi uvicornrye add fastapi uvicorn - 安装格式化工具(Black)和代码检查工具(Flake8):
rye add black flake8 --devrye add black flake8 --dev - 安装 PyInstaller 用于打包 EXE 文件:
rye add pyinstaller --devrye add pyinstaller --dev - 配置清华源加速:编辑
pyproject.toml文件,配置 PyPI 镜像源为阿里镜像。rye在安装依赖时会使用清华源加速下载。[[tool.rye.sources]] name = "default" url = "https://mirrors.aliyun.com/pypi/simple/"
3. 创建 FastAPI 应用
创建一个简单的 FastAPI 应用,main.py文件如下:
"""
main.py
"""
import uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, FastAPI!"}
if __name__ == "__main__":
import uvicorn
uvicorn.run("src.fastapi_project.main:app", host="0.0.0.0", port=8000, reload=False)
这个应用只有一个根路径/,返回一条简单的 JSON 消息。
4. 配置 Rye 脚本
rye支持使用自定义脚本来简化操作。我们可以在pyproject.toml文件中配置脚本,用于运行不同的命令,如构建 EXE、运行 FastAPI 服务、代码格式化、代码检查等。
修改pyproject.toml配置脚本:
# pyproject.toml
[tool.rye.scripts]
web = "uvicorn src.fastapi_project.main:app --reload"
# 如果需要使用到其他模块 => --hidden-import pandas | --noconsole
build-exe = "pyinstaller --onefile --add-data 'src/fastapi_project:src/fastapi_project' src/fastapi_project/main.py"
lint = "flake8"
format = "black ."
[[tool.rye.sources]]
name = "default"
url = "https://mirrors.aliyun.com/pypi/simple/"
5. 使用 Rye 命令管理项目
运行 FastAPI 服务:
你可以使用rye run web命令来运行 FastAPI 项目:
rye run web
这将启动uvicorn服务器,并使 FastAPI 应用在http://127.0.0.1:8000可用。你可以在浏览器中访问http://127.0.0.1:8000来查看返回的 JSON 消息。
格式化代码:
使用rye run format来格式化代码:
rye run format
这个命令将会使用black来格式化项目中的所有 Python 文件。
进行代码检查:
使用rye run lint来进行代码检查:
rye run lint
这将使用flake8对项目中的 Python 文件进行检查,报告潜在的代码问题和风格问题。
打包项目为 EXE 文件:
使用rye run build-exe来打包项目:
rye run build-exe
这个命令将使用pyinstaller打包项目文件main.py为一个独立的 EXE 文件。生成的 EXE 文件将在dist/目录中,运行后会启动与uvicorn一样的 FastAPI 服务。
6. 完整的pyproject.toml文件示例
以下是完整的pyproject.toml文件示例:
[project]
name = "fastapi-project"
version = "0.1.0"
description = "Add your description here"
authors = [
{ name = "fromsko", email = "1614355756@qq.com" }
]
dependencies = [
"fastapi>=0.115.6",
"uvicorn>=0.34.0",
"pandas>=2.2.3",
]
readme = "README.md"
requires-python = ">= 3.8"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.rye]
managed = true
dev-dependencies = [
"black>=24.10.0",
"flake8>=7.1.1",
"pyinstaller>=6.11.1",
]
[tool.hatch.metadata]
allow-direct-references = true
[tool.hatch.build.targets.wheel]
packages = ["src/fastapi_project"]
[tool.rye.scripts]
web = "uvicorn src.fastapi_project.main:app --reload"
# 如果需要使用到其他模块 => --hidden-import pandas | --noconsole
build-exe = "pyinstaller --onefile --add-data 'src/fastapi_project:src/fastapi_project' src/fastapi_project/main.py"
lint = "flake8"
format = "black ."
[[tool.rye.sources]]
name = "default"
url = "https://mirrors.aliyun.com/pypi/simple/"
7. 完整的项目目录结构
项目的目录结构可能如下:
fastapi_project/
├─.python-version
├─pyproject.toml
├─README.md
├─requirements-dev.lock
├─requirements.lock
└─src
└─fastapi_project
├─main.py
└__init__.py
8. 使用命令总览
- 启动 FastAPI 服务:
rye run webrye run web - 格式化项目代码:
rye run formatrye run format - 进行代码检查:
rye run lintrye run lint - 打包成 EXE 文件:
rye run build-exerye run build-exe
总结
https://github.com/Fromsko/rye-env
以上展示了如何使用rye管理一个基于 FastAPI 的 Python 项目,包括:
- 初始化项目和安装依赖。
- 使用
rye脚本简化常见操作(如启动服务、格式化代码、代码检查、打包 EXE)。 - 配置清华源加速。
- 使用
pyinstaller将项目打包为 EXE 文件。
通过这种方式,rye提供了一个简单、统一的工具链来管理项目的依赖、构建、测试和部署流程。

904

被折叠的 条评论
为什么被折叠?



