pixi
是一个建立在 conda 生态系统基础上的跨平台、多语言包管理器和工作流工具。它为开发人员提供了类似于流行的包管理器(如cargo
或yarn
的卓越体验,但适用于任何语言。
与 ❤️ 在 prefix.dev 一起开发。
Pixi 已准备好投入生产!我们正在努力保持文件格式更改与以前的版本兼容,以便您可以安心地依赖 pixi。
我们预计即将发布的版本的一些值得注意的功能是:
pixi
可以安装在 macOS、Linux 和 Windows 上。提供的脚本将自动下载最新版本的pixi
,解压它,并将pixi
二进制文件移动到~/.pixi/bin
。如果该目录不存在,脚本将创建它。
要在 macOS 和 Linux 上安装 Pixi,请打开终端并运行以下命令:
curl -fsSL https://pixi.sh/install.sh | bash
# or with brew
brew install pixi
该脚本还将更新您的 ~/.bash_profile 以将 ~/.pixi/bin 包含在您的 PATH 中,从而允许您从任何地方调用 pixi 命令。您可能需要重新启动终端或获取 shell 才能使更改生效。
从 macOS Catalina 开始,zsh 是默认的登录 shell 和交互式 shell。因此,您可能希望在安装命令中使用zsh
而不是bash
:
curl -fsSL https://pixi.sh/install.sh | zsh
该脚本还将更新您的 ~/.zshrc 以将 ~/.pixi/bin 包含在您的 PATH 中,从而允许您从任何地方调用 pixi 命令。
要在 Windows 上安装 Pixi,请打开 PowerShell 终端(您可能需要以管理员身份运行)并运行以下命令:
iwr - useb https: // pixi.sh / install.ps1 | iex
安装成功后,该脚本将通知您,并将 ~/.pixi/bin 目录添加到您的 PATH 中,这将允许您从任何位置运行 pixi 命令。或者带winget
winget install prefix-dev.pixi
要获得自动完成功能,请按照您的 shell 的说明进行操作。然后,重新启动 shell 或获取 shell 配置文件。
echo ' eval "$(pixi completion --shell bash)" ' >> ~ /.bashrc
echo ' eval "$(pixi completion --shell zsh)" ' >> ~ /.zshrc
Add-Content - Path $PROFILE - Value ' (& pixi completion --shell powershell) | Out-String | Invoke-Expression '
如果此操作失败并显示“由于不存在配置文件而失败”,请确保您的配置文件存在。如果没有,请使用以下命令创建它:
New-Item - Path $PROFILE - ItemType File - Force
echo ' pixi completion --shell fish | source ' >> ~/.config/fish/config.fish
将以下内容添加到 Nushell env 文件的末尾(通过在 Nushell 中运行$nu.env-path
找到它):
mkdir ~/.cache/pixi
pixi completion -- shell nushell | save - f ~/.cache/pixi/completions.nu
并将以下内容添加到 Nushell 配置的末尾(通过运行$nu.config-path
找到它):
use ~/.cache/pixi/ completions .nu *
echo 'eval (pixi completion --shell elvish | slurp)' >> ~/.elvish/rc.elv
您可以使用 pacman 从额外的存储库安装pixi
:
pacman -S pixi
pixi
适用于 Alpine Edge。启用测试存储库后可以通过 apk 安装它。
apk add pixi
pixi
100% 用 Rust 编写,因此可以使用 Cargo 来安装、构建和测试。要从源构建运行开始使用pixi
:
cargo install --locked --git https://github.com/prefix-dev/pixi.git pixi
我们不再发布到crates.io
,因此您需要从存储库安装它。原因是我们依赖于一些未发布的 crate,这些 crate 不允许我们发布到crates.io
。
或者当你想进行更改时使用:
cargo build
cargo test
如果您因依赖rattler
checkout 而遇到任何构建问题,请参阅编译步骤
要卸载 pixi 二进制文件,应将其删除。从$PIXI_DIR
中删除pixi
,默认为~/.pixi/bin/pixi
所以在 Linux 上它是:
rm ~ /.pixi/bin/pixi
在 Windows 上:
$PIXI_BIN = " $Env :LocalAppDatapixibinpixi " ; 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 init myproject
cd myproject
添加您要使用的依赖项
pixi add cowpy
在其环境中运行已安装的包
pixi run cowpy " Thanks for using pixi "
在环境中激活 shell
pixi shell
cowpy " Thanks for using pixi "
exit
您还可以将 conda 软件包全局安装到它们自己的环境中。此行为类似于pipx
或condax
。
pixi global install cowpy
您可以在 GitHub Actions 中使用 pixi 安装依赖项并运行命令。它支持自动缓存您的环境。
- uses : prefix-dev/[email protected]
- run : pixi exec cowpy "Thanks for using pixi"
请参阅文档了解更多详细信息。
我们非常希望您为pixi
做出贡献!无论您是想提出问题、修复遇到的错误还是提出改进建议,我们都会非常感谢您的每一次贡献。
如果您刚刚开始我们的项目或第一次进入 Rust 生态系统,我们会为您提供支持!我们建议从标记为good first issue
问题开始。这些都是精心选择的任务,为贡献提供了一个顺利的切入点。这些问题通常更简单,是熟悉项目的好方法。
有问题或想法,或者只是想聊天?加入我们在 Discord 上的热烈对话。我们非常活跃,很高兴欢迎您加入我们的社区。今天就加入我们的discord 服务器吧!
要查看pixi
正在构建的内容,请查看社区页面。