VSCode
Visual Studio Code 是一个流行的编辑器,可以通过安装适当的扩展来支持大多数编程语言。
Python 扩展#
首先,从 marketplace 安装 Python 扩展。通常,一旦你打开 Python 文件,扩展会自动检测并选择 Pixi 默认环境。如果它没有自动选择,或者你想选择不同的环境,你可以打开环境选择器来选择你选择的环境。

Direnv 扩展#
Direnv 提供了一种与语言无关的方式在 Pixi 环境中运行 VSCode。首先,从 marketplace 安装 Direnv 扩展。然后按照我们的 Direnv 文档页面 中的说明进行操作。
Devcontainer 扩展#
VSCode Devcontainers 是一种在具有一致环境的 workspace 上开发的流行工具。它们还用于 GitHub Codespaces,这使得在不需要在本地机器上安装任何东西的情况下在 workspace 上开发成为一种很棒的方式。
要在 devcontainer 中使用 pixi,请按以下步骤操作:
在工作区根目录中创建一个新目录 .devcontainer。
然后在 .devcontainer 目录中创建以下两个文件:
FROM mcr.microsoft.com/devcontainers/base:jammy
ARG PIXI_VERSION=v0.66.0
RUN curl -L -o /usr/local/bin/pixi -fsSL --compressed "https://github.com/prefix-dev/pixi/releases/download/${PIXI_VERSION}/pixi-$(uname -m)-unknown-linux-musl" \
&& chmod +x /usr/local/bin/pixi \
&& pixi info
# 设置一些用户和 workdir 设置以与 vscode 配合使用
USER vscode
WORKDIR /home/vscode
RUN echo 'eval "$(pixi completion -s bash)"' >> /home/vscode/.bashrc
{
"name": "my-workspace",
"build": {
"dockerfile": "Dockerfile",
"context": "..",
},
"customizations": {
"vscode": {
"settings": {},
"extensions": ["ms-python.python", "charliermarsh.ruff", "GitHub.copilot"]
}
},
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {}
},
"mounts": ["source=${localWorkspaceFolderBasename}-pixi,target=${containerWorkspaceFolder}/.pixi,type=volume"],
"postCreateCommand": "sudo chown vscode .pixi && pixi install"
}
将 .pixi 放在挂载中
在上面的示例中,我们将 .pixi 目录挂载到卷中。
这是必需的,因为 .pixi 目录不应该放在大小写不敏感的文件系统上(macOS 和 Windows 上的默认设置),而应该放在自己的卷中。
有些 conda 包(例如 ncurses-feedstock#73)包含大小写不同的文件,这会导致大小写不敏感的文件系统出错。
密钥#
如果你想通过私有 conda 通道进行认证,你可以将密钥添加到你的 devcontainer。
{
"build": "Dockerfile",
"context": "..",
"options": [
"--secret",
"id=prefix_dev_token,env=PREFIX_DEV_TOKEN",
],
// ...
}
# ...
RUN --mount=type=secret,id=prefix_dev_token,uid=1000 \
test -s /run/secrets/prefix_dev_token \
&& pixi auth login --token "$(cat /run/secrets/prefix_dev_token)" https://repo.prefix.dev
这些密钥需要作为环境变量在本地启动 devcontainer 时存在,或者在 GitHub Codespaces 设置 中的 Secrets 下存在。