创建开发环境#

为了测试修改后的代码,你需要从源码构建 Xorbits。这需要安装一个 C/C++ 编译器,Node.js,以及 Python 环境。另外强烈推荐安装 pre-commit hooks

步骤 1:安装 C 编译器#

如何安装 C 编译器取决于你所使用的平台。如果你在下一步选择使用 Docker,可以跳过当前步骤。

Windows

你需要安装 Build Tools for Visual Studio 2022

备注

你不需要安装 Visual Studio 2022。仅需要下滑到 “All downloads” -> “Tools for Visual Studio” 并安装 “Build Tools for Visual Studio 2022”。在安装过程中,选择 “Desktop development with C++”。

或者,你可以使用命令行工具 vs_BuildTools.exe 安装所需的组件。

此外你还可以选择使用 WSL 。请参考下方 Linux 一节。

macOS

为了使用 conda-based 的编译器,你需要执行 xcode-select --install 以安装开发者工具(Developer Tools)。安装编译器相关的其他信息请参考:https://devguide.python.org/setup/#macos

Linux

若在 Linux 环境下使用 conda,则不需要安装其他依赖。因此,如果你使用 conda,请忽略下面的步骤。

某些 Linux 发行版自带了 C 编译器。执行以下命令检查系统中安装了哪些编译器及其版本:

# for Debian/Ubuntu:
dpkg --list | grep compiler
# for Red Hat/RHEL/CentOS/Fedora:
yum list installed | grep -i --color compiler

GCC (GNU Compiler Collection) 是广泛使用的编译器之一,支持 C 及一些其他语言。如果已经安装了 GCC,则不需要再安装其他编译器。

如果没有安装任何 C 编译器,或你想要升级当前的编译器,又或你使用了其他 Linux 发行版,请搜索相关文档进行安装/升级。

如果你碰到了任何困难,请通过 issue,或 开发者社区 联系我们。

步骤 2:安装 Node.js#

为构建 Xorbits web UI,你需要安装 Node.js。推荐使用 nvm 进行安装。

备注

Xorbits 支持的 Node.js 最小版本为 18。

步骤 3:创建隔离的 Python 环境#

在开始之前:

选择 2:使用 Docker#

除非你需要在镜像中安装额外的 Python 库,否则强烈建议直接使用 DockerHub 上的 Xorbits 的官方镜像作为完备的开发环境。

Dockerhub 上的镜像包括了所有 Xorbits 支持的 Python 版本,以 py<python_version> 为后缀。对于镜像标签的前缀,nightly-main 表示该镜像由每天 Xorbits Github 主分支 构建而来,v<release_version> 表示该镜像在 Xorbits 发布时构建,对应相应的 Xorbits 发布版本。你可以根据需要选择拉取对应的镜像。

如果你真的需要手动构建镜像,Xorbits 在 python/xorbits/deploy/docker 目录下提供了一个 Dockerfile 用以构建包含完备开发环境的镜像。

Docker 构建命令

构建镜像

# Switch the current working directory to the top-level "xorbits" directory
$ cd xorbits

# Build the image
docker build -t xorbits-dev --progress=plain -f python/xorbits/deploy/docker/Dockerfile . --build-arg PYTHON_VERSION=<your_python_version>

运行容器

# Run a container and bind your local repo to the container
# This command assumes you are running from your local repo
# but if not alter ${PWD} to match your local repo path
docker run -it --rm xorbits-dev /bin/bash

更简单的是,你可以将 Docker与 以下集成开发环境(IDE)进行整合:

Visual Studio Code

你可以使用 Dockerfile 和 .devcontainer.json 文件来在 Visual Studio Code 中启动远程会话。有关详细信息,请参阅 https://code.visualstudio.com/docs/remote/containers

PyCharm (Professional)

要在 PyCharm 中启用 Docker支持 并使用 Services 工具窗口构建、管理镜像以及运行和与容器交互,请参考 https://www.jetbrains.com/help/pycharm/docker.html 获取详细信息。

步骤 4:构建并安装 Xorbits#

你可以执行:

# Build and install Xorbits
python -m pip install -e ".[dev]"
python setup.py build_ext -i
python setup.py build_web

现在,你可以 import 本地构建的 Xorbits:

$ python
>>> import xorbits
>>> print(xorbits.__version__)  # note: the exact output may differ
0.1.1+20.g9b58334.dirty

上述步骤会创建一个新的 Python 环境,不会对已有的环境造成影响。

备注

每当 web UI,C 的扩展代码,或从 upstream/main 合并代码后,你都需要重复上面的构建与安装过程。