15 个版本 (破坏性更新)

0.15.2 2024 年 2 月 29 日
0.14.0 2024 年 2 月 16 日
0.10.0 2023 年 12 月 8 日
0.7.0 2023 年 11 月 14 日
0.0.0 2020 年 4 月 23 日

55操作系统

每月 25 次下载

BSD-3-Clause

1.5MB
17K SLoC

包含 (ZIP 文件,11KB) examples/qgis/earthquakes_example.qgz

banner

License Build Status Project Chat

pixi:简化包管理的工具

概览

pixi 是一个基于 conda 生态系统构建的跨平台、多语言包管理和工作流程工具。它为开发者提供类似于流行的包管理器如 cargoyarn 的卓越体验,但适用于任何语言。

prefix.dev 开发,充满爱心的作品。 实时 pixi 示例

亮点

  • 支持包括 Python、C++ 和 R 在内的多种语言,使用 Conda 包。您可以在 prefix.dev 上找到可用的包。
  • 与所有主流操作系统兼容:Linux、Windows、macOS(包括 Apple Silicon)。
  • 始终包含最新的 lockfile
  • 提供简洁简单的类似 Cargo 的 命令行界面
  • 允许您按项目或 系统级 安装工具。
  • 完全使用 Rust 编写,并在 rattler 库之上构建。

入门

状态

该项目目前处于 alpha 阶段。它正在积极开发中,我们计划添加更多功能。文件格式可能会发生变化,您应该期待在向 v1.0 进发过程中出现破坏性变化。

一些即将推出的显著功能包括

  • 构建和发布您的项目为 Conda 包。
  • 支持 PyPi 包
  • 支持从源 依赖项
  • 改进文档、示例和用户体验。

安装

pixi 可在 macOS、Linux 和 Windows 上安装。提供的脚本将自动下载 pixi 的最新版本,提取它,并将 pixi 二进制文件移动到 ~/.pixi/bin。如果此目录不存在,脚本将创建它。

macOS 和 Linux

要在 macOS 和 Linux 上安装 Pixi,请打开终端并运行以下命令

curl -fsSL https://pixi.sh/install.sh | bash
# or with brew
brew install pixi

脚本还会更新您的 ~/.bash_profile,以便在您的 PATH 中包含 ~/.pixi/bin,使您可以从任何位置调用 pixi 命令。您可能需要重新启动终端或源您的 shell 以使更改生效。

Windows

要在 Windows 上安装 Pixi,请打开 PowerShell 终端(您可能需要以管理员身份运行它)并运行以下命令

iwr -useb https://pixi.sh/install.ps1 | iex

脚本将在安装成功后通知您并将 ~/.pixi/bin 目录添加到您的 PATH 中,这样您就可以从任何位置运行 pixi 命令。或者使用 winget

winget install prefix-dev.pixi

自动完成

要获取自动完成,请运行

# On unix (MacOS or Linux), pick your shell (use `echo $SHELL` to find the shell you are using.):
echo 'eval "$(pixi completion --shell bash)"' >> ~/.bashrc
echo 'eval "$(pixi completion --shell zsh)"' >> ~/.zshrc
echo 'pixi completion --shell fish | source' >> ~/.config/fish/config.fish
echo 'eval (pixi completion --shell elvish | slurp)' >> ~/.elvish/rc.elv

对于 Windows 的 PowerShell,请运行以下命令,然后重新启动 shell 或源 shell 配置文件

Add-Content -Path $PROFILE -Value '(& pixi completion --shell powershell) | Out-String | Invoke-Expression'

然后重新启动 shell 或源 shell 配置文件。

发行版软件包

Packaging status

Arch Linux

您可以从 extra 存储库 使用 pacman 安装 pixi

pacman -S pixi

Alpine Linux

pixiAlpine Edge 中可用。启用 测试存储库 后,可以通过 apk 安装。

apk add pixi

从源构建/安装

pixi 100% 用 Rust 编写,因此可以使用 cargo 进行安装、构建和测试。要从源构建开始使用 pixi 运行

cargo install --locked pixi
# Or to use the the latest `main` branch
cargo install --locked --git https://github.com/prefix-dev/pixi.git

或者当您想进行更改时使用

cargo build
cargo test

如果您在构建时遇到由于对 rattler 的依赖而出现的问题,请查看其 编译步骤

卸载

要卸载,应删除 pixi 二进制文件。从 $PIXI_DIR 中删除 pixi,默认为 ~/.pixi/bin/pixi

因此,在 Linux 上是

rm ~/.pixi/bin/pixi

而在 Windows 上

$PIXI_BIN = "$Env:LocalAppData\pixi\bin\pixi"; Remove-Item -Path $PIXI_BIN

运行此命令后,您仍然可以使用通过 pixi 安装的工具。要完全删除这些工具,只需删除整个 ~/.pixi 目录,并从您的路径中删除该目录。

用法

cli 的外观如下

 pixi
A package management and workflow tool

Usage: pixi [OPTIONS] <COMMAND>

Commands:
  completion  Generates a completion script for a shell
  init        Creates a new project
  add         Adds a dependency to the project
  run         Runs task in project
  shell       Start a shell in the pixi environment of the project
  global      Global is the main entry point for the part of pixi that executes on the global(system) level
  auth        Login to prefix.dev or anaconda.org servers to access private channels
  install     Install all dependencies
  task        Command management in project
  info        Information about the system and project
  upload      Upload a package to a prefix.dev channel
  search      Search a package, output will list the latest version of package
  project
  help        Print this message or the help of the given subcommand(s)

Options:
  -v, --verbose...     More output per occurrence
  -q, --quiet...       Less output per occurrence
      --color <COLOR>  Whether the log needs to be colored [default: auto] [possible values: always, never, auto]
  -h, --help           Print help
  -V, --version        Print version

创建 pixi 项目

初始化新项目并导航到项目目录

pixi init myproject
cd myproject

添加您想使用的依赖项

pixi add cowpy

在其环境中运行已安装的包

pixi run cowpy "Thanks for using pixi"

在环境中激活 shell

pixi shell
cowpy "Thanks for using pixi"
exit

全局安装 conda 包

您还可以将conda包全局安装到它们自己的环境中。这种行为类似于 pipxcondax

pixi global install cowpy

在GitHub Actions中使用

您可以使用pixi在GitHub Actions中安装依赖项并运行命令。

- uses: prefix-dev/[email protected]
  with:
    cache: true
- run: pixi run cowpy "Thanks for using pixi"

贡献 😍

我们非常欢迎您为pixi做出贡献!无论您是想发起一个问题、修复您遇到的问题,还是提出改进建议,每一次贡献都备受赞赏。

如果您刚开始使用我们的项目,或者第一次接触Rust生态系统,我们支持您!我们建议从标记为good first issue的问题开始。这些精心挑选的任务提供了一个平滑的贡献切入点。这些问题通常更直接,是熟悉项目的绝佳方式。

有疑问或想法,或者只是想聊天?加入我们充满活力的Discord讨论。我们非常活跃,并乐于欢迎您加入我们的社区。 今天加入我们的Discord服务器!

使用pixi构建

要查看使用pixi构建的内容,请查看社区页面。

依赖项

~47–85MB
~1.5M SLoC