{"id":28472887,"url":"https://github.com/fromsko/rye-env","last_synced_at":"2026-07-17T05:02:40.274Z","repository":{"id":275971032,"uuid":"927785392","full_name":"Fromsko/rye-env","owner":"Fromsko","description":"rye python 包管理器基础模板。rye using method.","archived":false,"fork":false,"pushed_at":"2025-02-05T14:44:32.000Z","size":11,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-20T01:45:57.661Z","etag":null,"topics":["python","rye","template-project"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Fromsko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-05T14:42:39.000Z","updated_at":"2025-02-05T14:46:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"7150dbe5-6b02-42d3-8e01-faf7d8d0899d","html_url":"https://github.com/Fromsko/rye-env","commit_stats":null,"previous_names":["fromsko/rye-env"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Fromsko/rye-env","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fromsko%2Frye-env","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fromsko%2Frye-env/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fromsko%2Frye-env/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fromsko%2Frye-env/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Fromsko","download_url":"https://codeload.github.com/Fromsko/rye-env/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Fromsko%2Frye-env/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35568166,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-17T02:00:06.162Z","response_time":116,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["python","rye","template-project"],"created_at":"2025-06-07T11:30:43.146Z","updated_at":"2026-07-17T05:02:40.261Z","avatar_url":"https://github.com/Fromsko.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# rye-env\n\n\u003e [CSDN 文章地址](https://blog.csdn.net/zhenndbc?spm=1000.2115.3001.5343)\n\n# Rye完整使用教学\n\n\u003e [官方网址](https://rye.astral.sh/): https://rye.astral.sh/\n\n## 主题总结：\n\n1. **Rye 安装与配置**\n   * 安装`rye`工具并配置环境。\n   * 配置`pyproject.toml`和锁定文件`rye.lock`。\n2. **Rye 工作区 (****`workspaces`****)**\n   * 创建、切换和管理工作区。\n   * 为不同的开发环境或 CI 环境使用独立的工作区。\n3. **虚拟环境管理 (****`virtual`****)**\n   * 创建、激活、查看和删除虚拟环境。\n   * 使用虚拟环境隔离项目依赖。\n4. **依赖管理与安装 (****`deps`****)**\n   * 使用`rye add`添加依赖。\n   * 管理不同的依赖类型（普通依赖、开发依赖等）。\n5. **同步依赖 (****`sync`****)**\n   * 使用`rye sync`同步项目的依赖。\n   * 使用`--with-sources`选项来包含源代码文件。\n6. **全局工具与命令 (****`shims`****)**\n   * 安装并使用全局命令（shims）来简化工具管理。\n   * 查看和卸载全局工具。\n7. **发布项目 (****`publish`****)**\n   * 使用`rye publish`将 Python 项目发布到包管理平台（如 PyPI）。\n8. **Rust 集成 (****`rust`****)**\n   * 在`rye`中安装和使用 Rust 工具链。\n   * 在 Python 项目中集成 Rust 扩展。\n9. **Docker 与 Rye 集成**\n   * 在 Docker 中配置和使用`rye`，管理依赖和虚拟环境。\n10. **配置源仓库 (****`sources`****)**\n    * 添加、删除和查看项目的依赖源仓库。\n    * 配置和管理私有或自定义源。\n\n***\n\n### 1.Rye 安装与配置\n\n* **安装\u0026#x20;****`rye`**：\n  * 使用以下命令在系统中安装`rye`：`curl -sSL https://rye.astral.sh/get.sh | bash `\n    * `windows` 直接 安装官网提供的: [rye-x86\\_64-windows.exe](https://github.com/astral-sh/rye/releases/latest/download/rye-x86_64-windows.exe)\n    ```\n    curl -sSL https://rye.astral.sh/get.sh | bash\n    ```\n* **配置项目**：\n  * 初始化一个新的 Python 项目：`rye init `\n    ```\n    rye init\n    ```\n* **查看\u0026#x20;****`pyproject.toml`****\u0026#x20;文件**：\n  * 这是项目的主要配置文件，其中定义了依赖、工具链等。\n\n***\n\n### 2.Rye 工作区 (`workspaces`)\n\n* **创建工作区**：\n  * 创建一个新的工作区：`rye workspace new \u003cworkspace-name\u003e `\n    ```\n    rye workspace new \u003cworkspace-name\u003e\n    ```\n* **切换工作区**：\n  * 切换到一个已有的工作区：`rye workspace use \u003cworkspace-name\u003e `\n    ```\n    rye workspace use \u003cworkspace-name\u003e\n    ```\n* **查看当前工作区**：\n  * 查看当前激活的工作区：`rye workspace `\n    ```\n    rye workspace\n    ```\n* **删除工作区**：\n  * 删除一个工作区：`rye workspace remove \u003cworkspace-name\u003e `\n    ```\n    rye workspace remove \u003cworkspace-name\u003e\n    ```\n\n***\n\n### 3.虚拟环境管理 (`virtual`)\n\n* **创建虚拟环境**：\n  * 创建一个新的虚拟环境：`rye virtual new \u003cenv-name\u003e `\n    ```\n    rye virtual new \u003cenv-name\u003e\n    ```\n* **激活虚拟环境**：\n  * 激活某个虚拟环境：`rye virtual use \u003cenv-name\u003e `\n    ```\n    rye virtual use \u003cenv-name\u003e\n    ```\n* **查看所有虚拟环境**：\n  * 列出所有虚拟环境：`rye virtual list `\n    ```\n    rye virtual list\n    ```\n* **删除虚拟环境**：\n  * 删除某个虚拟环境：`rye virtual remove \u003cenv-name\u003e `\n    ```\n    rye virtual remove \u003cenv-name\u003e\n    ```\n\n***\n\n### 4.依赖管理与安装 (`deps`)\n\n* **添加依赖**：\n  * 将依赖包添加到项目中：`rye add \u003cpackage-name\u003e `\n    ```\n    rye add \u003cpackage-name\u003e\n    ```\n* **添加开发依赖**：\n  * 将依赖添加为开发依赖（如测试框架）：`rye add \u003cpackage-name\u003e --dev `\n    ```\n    rye add \u003cpackage-name\u003e --dev\n    ```\n* **指定版本的依赖**：\n  * 安装特定版本的依赖：`rye add \u003cpackage-name\u003e==\u003cversion\u003e `\n    ```\n    rye add \u003cpackage-name\u003e==\u003cversion\u003e\n    ```\n\n***\n\n### 5.同步依赖 (`sync`)\n\n* **同步项目的依赖**：\n  * 同步项目依赖并安装所有缺少的包：`rye sync `\n    ```\n    rye sync\n    ```\n* **使用\u0026#x20;****`--with-sources`****\u0026#x20;同步源代码**：\n  * 在同步时包括源代码文件：`rye sync --with-sources `\n    ```\n    rye sync --with-sources\n    ```\n\n***\n\n### 6.全局工具与命令 (`shims`)\n\n* **安装全局工具**：\n  * 使用`rye`安装全局工具（例如，格式化工具`black`）：`rye install black `\n    ```\n    rye install black\n    ```\n* **查看已安装的全局工具**：\n  * 列出所有安装的全局工具：`rye list `\n    ```\n    rye list\n    ```\n* **卸载全局工具**：\n  * 卸载一个全局工具：`rye uninstall black `\n    ```\n    rye uninstall black\n    ```\n\n***\n\n### 7.发布项目 (`publish`)\n\n* **构建项目**：\n  * 在发布前，先构建项目：`rye build `\n    ```\n    rye build\n    ```\n* **发布到 PyPI**：\n  * 将项目发布到 PyPI 或其他包仓库：`rye publish `\n    ```\n    rye publish\n    ```\n* **配置 PyPI 登录**：\n  * 配置 PyPI 的认证信息：`pysetup config pypi `\n    ```\n    pysetup config pypi\n    ```\n\n***\n\n### 8.Rust 集成 (`rust`)\n\n* **安装 Rust 工具链**：\n  * 使用`rye`安装 Rust 工具链：`rye toolchain install rust `\n    ```\n    rye toolchain install rust\n    ```\n* **为 Python 项目配置 Rust**：\n  * 将 Rust 集成到 Python 项目中，通常用于构建本地扩展：`rye toolchain use rust `\n    ```\n    rye toolchain use rust\n    ```\n\n***\n\n### 9.Docker 与 Rye 集成\n\n* **安装 Rye 到 Docker 容器中**：\n  * 在 Dockerfile 中安装`rye`：`RUN curl -sSL https://rye.astral.sh/get.sh | bash `\n    ```\n    RUN curl -sSL https://rye.astral.sh/get.sh | bash\n    ```\n* **同步项目依赖**：\n  * 在 Dockerfile 中同步项目依赖：`COPY pyproject.toml . COPY rye.lock . RUN rye sync `\n    ```\n    COPY pyproject.toml .\n    COPY rye.lock .\n    RUN rye sync\n    ```\n* **运行项目**：\n  * 在 Docker 容器中运行 Python 项目：`CMD [\"rye\", \"run\", \"python\", \"main.py\"] `\n    ```\n    CMD [\"rye\", \"run\", \"python\", \"main.py\"]\n    ```\n\n***\n\n### 10.配置源仓库 (`sources`)\n\n* **添加源仓库**：\n  * 为项目添加自定义的依赖源：`rye sources add \u003csource-url\u003e `\n    ```\n    rye sources add \u003csource-url\u003e\n    ```\n* **查看所有配置的源**：\n  * 列出所有已添加的源：`rye sources list `\n    ```\n    rye sources list\n    ```\n* **删除源仓库**：\n  * 删除某个源：`rye sources remove \u003csource-url\u003e `\n    ```\n    rye sources remove \u003csource-url\u003e\n    ```\n\n***\n\n## 完整项目使用案例\n\n\u003e 基于`fastapi`开发项目，采用格式化工具，并配置镜像源加速，最后配合`pyinstaller `进行项目打包，还要给出 rye script的使用（采用 `rye run build-exe` 打包exe，采用 `rye run web` 运行fastapi项目，采用 `rye run lint` 进行代码检查， 采用 `rye run format` 进行项目代码格式化）\n\n下面是一个完整的 **FastAPI** 项目案例，演示如何使用`rye`来管理整个项目的开发流程，包括初始化项目、安装依赖、使用格式化工具、配置清华源加速、打包成 EXE 文件等。\n\n### 1. 项目初始化\n\n首先，初始化一个新的**FastAPI**项目，并使用`rye`来管理依赖和工具。\n\n#### 步骤：\n\n1. **创建新项目目录**： 在终端中创建一个新的项目目录并进入该目录\n   ```\n   mkdir fastapi_project\n   cd fastapi_project\n   ```\n2. **初始化项目**： 使用`rye`初始化 Python 项目\n   ```\n   rye init\n   ```\n3. **初始化\u0026#x20;****`rye.lock`****\u0026#x20;文件**\n   ```\n   rye sync\n   ```\n\n***\n\n### 2. 安装依赖\n\n我们需要安装以下依赖：\n\n* `fastapi`: FastAPI 框架。\n* `uvicorn`: ASGI 服务器，用于运行 FastAPI 应用。\n* `black`: 代码格式化工具。\n* `flake8`: 代码检查工具。\n* `pyinstaller`: 用于打包成 EXE 文件。\n\n#### 步骤：\n\n1. **安装 FastAPI 和 Uvicorn**：`rye add fastapi uvicorn `\n   ```shell\n   rye add fastapi uvicorn\n   ```\n2. **安装格式化工具（Black）和代码检查工具（Flake8）**：`rye add black flake8 --dev `\n   ```shell\n   rye add black flake8 --dev\n   ```\n3. **安装 PyInstaller 用于打包 EXE 文件**：`rye add pyinstaller --dev `\n   ```shell\n   rye add pyinstaller --dev\n   ```\n4. **配置清华源加速**：编辑`pyproject.toml`文件，配置 PyPI 镜像源为阿里镜像。`rye`在安装依赖时会使用清华源加速下载。\n   ```toml\n   [[tool.rye.sources]]\n\tname = \"default\"\n\turl = \"https://mirrors.aliyun.com/pypi/simple/\"\n   ```\n\n***\n\n### 3. 创建 FastAPI 应用\n\n创建一个简单的 FastAPI 应用，`main.py`文件如下：\n\n```python\n\"\"\"\n    main.py\n\"\"\"\n\nimport uvicorn\nfrom fastapi import FastAPI\n\napp = FastAPI()\n\n\n@app.get(\"/\")\ndef read_root():\n    return {\"message\": \"Hello, FastAPI!\"}\n\n\nif __name__ == \"__main__\":\n    import uvicorn\n\n    uvicorn.run(\"src.fastapi_project.main:app\", host=\"0.0.0.0\", port=8000, reload=False)\n```\n\n这个应用只有一个根路径`/`，返回一条简单的 JSON 消息。\n\n***\n\n### 4. 配置 Rye 脚本\n\n`rye`支持使用自定义脚本来简化操作。我们可以在`pyproject.toml`文件中配置脚本，用于运行不同的命令，如构建 EXE、运行 FastAPI 服务、代码格式化、代码检查等。\n\n#### 修改`pyproject.toml`配置脚本：\n\n```toml\n# pyproject.toml\n[tool.rye.scripts]\nweb = \"uvicorn src.fastapi_project.main:app --reload\"\n# 如果需要使用到其他模块 =\u003e --hidden-import pandas | --noconsole\nbuild-exe = \"pyinstaller --onefile --add-data 'src/fastapi_project:src/fastapi_project' src/fastapi_project/main.py\"\nlint = \"flake8\"\nformat = \"black .\"\n\n[[tool.rye.sources]]\nname = \"default\"\nurl = \"https://mirrors.aliyun.com/pypi/simple/\"\n```\n\n***\n\n### 5. 使用 Rye 命令管理项目\n\n#### 运行 FastAPI 服务：\n\n你可以使用`rye run web`命令来运行 FastAPI 项目：\n\n```shell\nrye run web\n```\n\n这将启动`uvicorn`服务器，并使 FastAPI 应用在`http://127.0.0.1:8000`可用。你可以在浏览器中访问`http://127.0.0.1:8000`来查看返回的 JSON 消息。\n\n#### 格式化代码：\n\n使用`rye run format`来格式化代码：\n\n```shell\nrye run format\n```\n\n这个命令将会使用`black`来格式化项目中的所有 Python 文件。\n\n#### 进行代码检查：\n\n使用`rye run lint`来进行代码检查：\n\n```shell\nrye run lint\n```\n\n这将使用`flake8`对项目中的 Python 文件进行检查，报告潜在的代码问题和风格问题。\n\n#### 打包项目为 EXE 文件：\n\n使用`rye run build-exe`来打包项目：\n\n```shell\nrye run build-exe\n```\n\n这个命令将使用`pyinstaller`打包项目文件`main.py`为一个独立的 EXE 文件。生成的 EXE 文件将在`dist/`目录中，运行后会启动与`uvicorn`一样的 FastAPI 服务。\n\n***\n\n### 6. 完整的`pyproject.toml`文件示例\n\n以下是完整的`pyproject.toml`文件示例：\n\n```toml\n[project]\nname = \"fastapi-project\"\nversion = \"0.1.0\"\ndescription = \"Add your description here\"\nauthors = [\n    { name = \"fromsko\", email = \"1614355756@qq.com\" }\n]\ndependencies = [\n    \"fastapi\u003e=0.115.6\",\n    \"uvicorn\u003e=0.34.0\",\n    \"pandas\u003e=2.2.3\",\n]\nreadme = \"README.md\"\nrequires-python = \"\u003e= 3.8\"\n\n[build-system]\nrequires = [\"hatchling\"]\nbuild-backend = \"hatchling.build\"\n\n[tool.rye]\nmanaged = true\ndev-dependencies = [\n    \"black\u003e=24.10.0\",\n    \"flake8\u003e=7.1.1\",\n    \"pyinstaller\u003e=6.11.1\",\n]\n\n[tool.hatch.metadata]\nallow-direct-references = true\n\n[tool.hatch.build.targets.wheel]\npackages = [\"src/fastapi_project\"]\n\n[tool.rye.scripts]\nweb = \"uvicorn src.fastapi_project.main:app --reload\"\n# 如果需要使用到其他模块 =\u003e --hidden-import pandas | --noconsole\nbuild-exe = \"pyinstaller --onefile --add-data 'src/fastapi_project:src/fastapi_project' src/fastapi_project/main.py\"\nlint = \"flake8\"\nformat = \"black .\"\n\n[[tool.rye.sources]]\nname = \"default\"\nurl = \"https://mirrors.aliyun.com/pypi/simple/\"\n```\n\n***\n\n### 7. 完整的项目目录结构\n\n项目的目录结构可能如下：\n\n```text\nfastapi_project/\n├─.python-version\n├─pyproject.toml\n├─README.md\n├─requirements-dev.lock\n├─requirements.lock\n└─src\n  └─fastapi_project\n        ├─main.py        \n        └__init__.py\n```\n\n***\n\n### 8. 使用命令总览\n\n* **启动 FastAPI 服务**：`rye run web `\n  ```\n  rye run web\n  ```\n* **格式化项目代码**：`rye run format `\n  ```\n  rye run format\n  ```\n* **进行代码检查**：`rye run lint `\n  ```\n  rye run lint\n  ```\n* **打包成 EXE 文件**：`rye run build-exe `\n  ```\n  rye run build-exe\n  ```\n\n***\n\n### 总结\n\n\n以上展示了如何使用`rye`管理一个基于 FastAPI 的 Python 项目，包括：\n\n1. 初始化项目和安装依赖。\n2. 使用`rye`脚本简化常见操作（如启动服务、格式化代码、代码检查、打包 EXE）。\n3. 配置清华源加速。\n4. 使用`pyinstaller`将项目打包为 EXE 文件。\n\n通过这种方式，`rye`提供了一个简单、统一的工具链来管理项目的依赖、构建、测试和部署流程。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffromsko%2Frye-env","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffromsko%2Frye-env","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffromsko%2Frye-env/lists"}