10个版本 (破坏性更新)
0.9.0 | 2024年4月23日 |
---|---|
0.8.1 | 2024年2月15日 |
0.7.0 | 2024年2月9日 |
0.5.0 | 2024年2月1日 |
0.1.0 | 2023年12月8日 |
#1736 in 开发工具
642 每月下载量
在 pixi 中使用
1.5MB
12K SLoC
包含 (DOS可执行文件, 185KB) src/win/windows-launcher/t64-arm.exe、(DOS可执行文件, 170KB) src/win/windows-launcher/w64-arm.exe、(DOS可执行文件, 98KB) src/win/windows-launcher/t32.exe、(DOS可执行文件, 110KB) src/win/windows-launcher/t64.exe、(DOS可执行文件, 92KB) src/win/windows-launcher/w32.exe、(DOS可执行文件, 105KB) src/win/windows-launcher/w64.exe
RIP:Rust中的快速、简洁的
pip
实现简介
RIP
是一个库,允许从 Rust 到虚拟环境解析和安装 Python PyPI 包。它基于我们构建 Rattler 的经验,旨在提供与 PyPI 相同的体验,而不是 Conda。
我应该用它来做什么?
与 Rattler 一样,RIP
应该快速且易于使用。这个库本身不是包管理器,但提供用于包管理器的基础设施。要查看示例,请查看我们的包管理器:pixi
RIP
基于非常出色的posy 的工作,我们尽量在可能的地方为作者提供信用。
展示
RIP
有一个非常不完整的类似于 pip 的二进制文件,可用于测试包安装。让我们解析和安装 flask
Python 包。运行 cargo r install flask /tmp/flask
我们得到如下内容
本示例展示了从 PyPI 下载和缓存元数据的过程。同时,使用我们增量 SAT 求解器(Resolvo)进行包解析:[Resolvo](https://github.com/mamba-org/resolvo "Resolvo")(更多信息见下文)。最后,解析完成后将包安装到虚拟环境中。我们本地缓存所有内容,以便重用 PyPi 元数据。
功能
以下是 RIP
当前功能的列表,其中最大的功能如下所示
- 异步下载和积极缓存 PyPI 元数据。
- 使用 Resolvo 解析 PyPI 包。
- 安装 wheel 文件。
- 支持 sdist 文件(必须目前符合
PEP 517
和PEP 518
标准)。 - 本地构建 wheel 文件的缓存。
PyPI 生态系统中的更多复杂性需要实现,更多详情请参阅我们的 GitHub 问题和请求。
详细信息
解析
我们集成了独立的包装 SAT 求解器 Resolvo,用于解析 pypi 包。该求解器是增量式的,并在解析 SAT 问题期间添加包装元数据。可以通过 resolvo
功能标志启用此功能。
安装
我们对解析的包提供了非常简单的安装支持。这仅应用于测试目的,例如:使用 cargo r -- install flask /tmp/flask_env
创建一个虚拟环境并安装 flask 和它到其中。之后,你可以运行
/tmp/flask_env/bin/python
在虚拟环境中启动 python。import flask #
,这应该从虚拟环境中导入 flask 包。目前还没有检测 venv 中的现有包,尽管这应该相对简单。
贡献 😍
我们非常欢迎你做出贡献!有关更多信息,请参阅 CONTRIBUTING.md。对于问题、请求或随意的聊天,我们非常活跃在 discord 服务器上。你可以通过 此链接 加入我们的 discord 服务器。
依赖项
~27–61MB
~1M SLoC