Taichi 源码开发环境搭建指南基于 Conda 创建 taichi-dev 环境与工具链自动注入【免费下载链接】taichiProductive, portable, and performant GPU programming in Python.项目地址: https://gitcode.com/GitHub_Trending/ta/taichi导读本文讲解如何在 Linux/macOS 上使用 Conda 为 Taichitaichi-lang源码开发搭建隔离的 Python 环境taichi-dev从创建环境、安装开发依赖到通过 Conda 的activate.d机制自动注入 C 编译器、LLVM 工具链与 CMake 构建参数。读完本文你将掌握一套可复现的 Taichi 源码编译前置环境配置流程并能按需定制工具链变量为后续setup.py develop开发模式或完整 wheel 构建做好准备。适用场景与前置条件conda/README.md定位明确这是一份面向 Taichi 源码开发者的环境准备指南而非普通用户的pip install taichi安装教程。普通用户无需构建源码直接通过 pip 安装即可只有当你要参与编译器、图形学或高性能计算相关功能的开发时才需要按本文流程搭建开发环境。平台限制仓库conda/README.md明确注明目录中提供的脚本目前只支持 Linux 与 macOS。Windows 用户需要等价的 bat 脚本当前仓库中尚无对应实现见 conda/README.md。这意味着本流程依赖 POSIX shell 与 bash 特性Windows 上请另寻 WSL 或等待社区补充。安装 Conda环境管理依赖 CondaMiniconda 即可。请从 Conda 官方渠道下载并安装与你操作系统匹配的 Miniconda安装完成后确保conda命令可用。后续所有操作都基于命令行完成。第一步创建 taichi-dev 开发环境进入仓库的conda目录用conda_env.yaml声明式地创建环境# 假设你位于仓库根目录 $ cd conda $ conda env create -f conda_env.yaml $ conda activate taichi-devconda_env.yaml 解析conda/conda_env.yaml 的内容非常精简是整个环境的单一事实来源name: taichi-dev dependencies: - python3.8 # Replace this with your favorite Python versionname: taichi-dev环境名固定为taichi-dev后续update_env_vars.sh会校验这个名称因此不要随意改名python3.8文件头部注释明确指出可以替换为你喜欢的 Python 版本。结合仓库 setup.py 中声明的 classifierTaichi 源码构建支持 Python 3.73.11因此按需选择即可例如 3.10 是常见选择。环境的日常更新conda_env.yaml顶部注释给出了环境更新的标准姿势conda activate taichi-dev conda env update --file conda_env.yaml --prune其中--prune会移除环境中不再被 YAML 声明的多余包保证环境与声明文件严格一致。这与 Conda 官方推荐的以 YAML 为单一来源管理环境的做法一致。第二步安装开发依赖环境创建成功后还需要把仓库根目录的requirements_dev.txt中的开发依赖装进taichi-dev# 注意这只会把依赖安装到 taichi-dev 环境中 (taichi-dev) $ python3 -m pip install -r ../requirements_dev.txt注意这里使用的是python3 -m pip而非裸pip确保安装目标是当前激活的 conda 环境而不是系统的 pip。requirements_dev.txt 中的依赖一览requirements_dev.txt 是 Taichi 源码开发所需的 Python 侧工具链可分为几类构建与打包cmakeC 侧构建系统的驱动工具scikit-build桥接 setuptools 与 CMake 的打包框架仓库根目录 setup.py 正是通过from skbuild import setup来构建taichi_pythonC 扩展pybind11Taichi Python 绑定层的 C 库对应taichi/python与taichi/program的导出实现ninja; platform_system ! WindowsNinja 构建后端非 Windows 平台安装显著加速增量编译wheel与twinewheel 包构建与发布上传numpy数值计算基础库Taichi Python 侧与 ndarray 交互依赖它。代码质量与协作yapf格式化、isortimport 排序、pylint静态检查、pre-commit提交前钩子GitPython构建/发布脚本中执行 Git 相关操作时使用。测试与辅助coverage测试覆盖率统计Pillow图像读写Taichi 示例与图像 I/O 测试需要requestsCI 与发布脚本的 HTTP 请求astunparseAST 反解析用于 Taichi 的 Python AST 前端处理distro跨发行版识别 Linux 发行版构建脚本判断系统时使用colorama终端彩色输出。第三步配置工具链环境变量Taichi 的源码构建依赖 C 编译器和 LLVM 工具链。conda/scripts/activate_env_vars.sh提供了这些环境变量的声明模板供你按本机实际情况填写#!/bin/sh set -x ### Path to clang ### # export CXX/path/to/clang ### LLVM toolchain directory ### # export LLVM_DIR/usr/local/lib/cmake/llvm ### Additional CMake args for building Taichi ### # export TAICHI_CMAKE_ARGS-DCMAKE_CXX_COMPILERclang ### Number of threads used when running Taichi tests ### # export TI_TEST_THREADS4 set x各变量的作用如下环境变量作用说明CXXC 编译器路径指向 clangTaichi 建议 Clang 10推荐 Clang 15详见 开发者安装文档macOS 可直接使用 Xcode Command Line Tools 自带的 AppleClangLLVM_DIRLLVM 的 CMake 配置目录通常形如llvm-install/lib/cmake/llvm用于让 CMake 找到 LLVM 15 工具链TAICHI_CMAKE_ARGS额外的 CMake 构建参数控制是否启用 Vulkan/CUDA 等后端是源码构建最常用的开关TI_TEST_THREADS运行 Taichi 测试时使用的线程数控制测试并行度避免测试互相干扰TAICHI_CMAKE_ARGS 常用开关TAICHI_CMAKE_ARGS是 setup.py 明确支持的构建变量用于向 C 侧taichi_python扩展传递额外 CMake 参数。根据 开发者安装文档 中整理的后端开关表常用组合例如export TAICHI_CMAKE_ARGS-DTI_WITH_VULKAN:BOOLON -DTI_WITH_CUDA:BOOLON常用开关速查默认值取自开发者安装文档CMake 开关说明默认TI_WITH_LLVMLLVM 后端Taichi 核心执行引擎ONTI_WITH_CUDACUDA 后端NVIDIA GPUONTI_WITH_VULKANVulkan 后端需要提前装好 Vulkan SDKOFFTI_WITH_METALMetal 后端macOSONTI_WITH_OPENGLOpenGL 后端ONTI_BUILD_TESTS同时构建 C 测试OFFTI_WITH_C_APITaichi 运行时 C-API 库ON修改activate_env_vars.sh后需要重新执行环境变量注入脚本才能生效见下一步。第四步用 Conda activate.d 机制自动注入环境变量手动export的变量在每次新开终端后都会丢失。仓库提供的update_env_vars.sh利用 Conda 官方支持的activate.d钩子机制把activate_env_vars.sh安装进当前环境的激活目录实现conda activate taichi-dev时自动加载工具链配置。update_env_vars.sh 的工作原理conda/update_env_vars.sh 的执行流程如下校验环境第 3-6 行检查CONDA_DEFAULT_ENV是否为taichi-dev不是则报错退出——这是为了防止把配置装进错误的环境定位脚本目录第 9-10 行通过pwd -P解析脚本自身绝对路径得到scripts/子目录写入激活钩子第 16-25 行进入$CONDA_PREFIX当前 conda 环境的安装根目录创建etc/conda/activate.d/目录将scripts/activate_env_vars.sh复制为env_vars.sh。从此每次执行conda activate taichi-devConda 都会自动 sourceetc/conda/activate.d/env_vars.sh其中的CXX、LLVM_DIR、TAICHI_CMAKE_ARGS、TI_TEST_THREADS等变量便自动就位无需手动 export。执行注入先按上一步编辑好 conda/scripts/activate_env_vars.sh然后在conda目录下执行$ conda activate taichi-dev (taichi-dev) $ ./update_env_vars.sh由于脚本内部开启了set -x执行时会打印每一步操作的详细信息便于确认钩子安装位置与复制结果。验证环境与后续开发环境就绪后可以验证(taichi-dev) $ which python # 应指向 conda 环境内的 python (taichi-dev) $ echo $TAICHI_CMAKE_ARGS # 确认工具链变量已自动加载 (taichi-dev) $ echo $TI_TEST_THREADS确认无误后即可继续参考仓库的 开发者安装文档 完成 Taichi 源码构建——典型流程是python3 setup.py develop进入开发模式Python 改动即时生效或./build.py构建可分发的 wheel。常见问题与排错update_env_vars.sh报 Please run inside taichi-dev conda env说明当前未激活taichi-dev环境先执行conda activate taichi-dev。python3 setup.py develop报 permission denied多半是当前 Python 环境无写权限。开发者安装文档给出的两条出路改用--user安装或如本文所示使用 Conda 环境内的 Python——这也是本流程存在的意义之一。编译时找不到 spdlog 等头文件说明克隆仓库时未带--recursive拉取子模块需执行git submodule update --init --recursive --depth1子模块依赖见仓库 external/ 目录。which python仍指向系统 Python确保conda activate taichi-dev已生效并检查$CONDA_DEFAULT_ENV输出是否为taichi-dev。小结Taichi 源码开发环境的搭建核心可以概括为三件事用 conda/conda_env.yaml 声明式创建taichi-dev环境、用 requirements_dev.txt 补齐 Python 侧构建/测试工具链、再通过 conda/update_env_vars.sh 把 conda/scripts/activate_env_vars.sh 注册为 Conda 激活钩子实现编译器与 LLVM 工具链的自动注入。这套环境声明 依赖清单 钩子注入的组合让每个开发者都能在 Linux/macOS 上快速获得一致的、可复现的 Taichi 源码编译环境。当前仓库版本为 v1.8.0本文流程适用于该版本及其对应分支的源码开发。【免费下载链接】taichiProductive, portable, and performant GPU programming in Python.项目地址: https://gitcode.com/GitHub_Trending/ta/taichi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考