ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Daft 安装完全指南:从 pip 一键安装到可选依赖、Nightly 与旧 CPU 兼容方案

Daft 安装完全指南:从 pip 一键安装到可选依赖、Nightly 与旧 CPU 兼容方案 Daft 安装完全指南从 pip 一键安装到可选依赖、Nightly 与旧 CPU 兼容方案【免费下载链接】DaftHigh-performance data engine for AI and multimodal workloads. Process images, audio, video, and structured data at any scale项目地址: https://gitcode.com/GitHub_Trending/da/DaftDaft 是一个面向 AI 与多模态工作负载的高性能数据引擎能够处理图像、音频、视频与结构化数据。本文以仓库 docs/install.md 为核心系统讲解 Daft 在不同场景下的安装方式包括一条命令的标准安装、按需裁剪的可选依赖extras、包含全部功能的daft[all]安装、每日发布的 Nightly 构建以及针对不支持 AVX 指令集旧 CPU 的 LTS 兼容版本并辅以 pyproject.toml 与 Makefile 中的源码级细节帮助你在任何环境下正确、高效地装好 Daft。快速安装一条命令开始使用 Daft对于绝大多数用户安装 Daft 只需要一条命令pip install -U daft该命令会从 PyPI 拉取 Daft 的预编译 wheel 包并升级到最新稳定版。-U即--upgrade参数确保你安装的是当前最新的发布版本。安装完成后可以通过 Python 验证安装是否成功import daft print(daft.__version__)从源码看daft/__init__.py在导入时会从 Rust 扩展模块读取构建信息get_version()返回编译进二进制中的版本号get_build_type()返回构建类型例如 release / debug你可以用它们确认当前安装的版本与构建形态参见 daft/init.py。运行环境要求Python 版本Daft 要求Python 3.10 或更高版本这一约束定义在 pyproject.toml 的requires-python 3.10字段中。核心依赖标准安装会自动带上少量运行时必需依赖见 pyproject.tomlpyarrow 16.0.0,26.0.0Daft 基于 Apache Arrow 内存格式构建这是数据交换与向量化计算的基础tqdm 4.68.0用于进度条展示typing-extensionsPython 3.12 时类型系统兼容层packaging包版本解析工具。构建方式Daft 的核心引擎由 Rust 编写Python 绑定通过maturin构建pyproject.toml。普通用户直接安装预编译 wheel 即可无需本地 Rust 工具链。按需安装可选依赖ExtrasDaft 将大量功能封装为可选的“extra”依赖目的是让核心安装保持轻量。官方文档提供了一个交互式安装工具其前端逻辑位于 docs/js/install-tool.js勾选功能后自动拼接生成对应的pip install命令全部勾选时简化为daft[all]。下表完整列出当前文档支持的全部 22 个 extra以及它们在 pyproject.toml 中对应的实际依赖包Extra 名称用途实际引入的依赖摘自 pyproject.tomlhuggingfaceHugging Face 数据集与 Hub 读取huggingface-hub、datasets、fsspecopenaiOpenAI API 的 AI 函数LLM、embeddingopenai、numpy、pillowtransformers本地 Hugging Face Transformers 模型推理transformers、sentence-transformers、torch、torchvision、pillowray基于 Ray 的分布式计算ray[data, client]2.11.0,2.59.0Flotilla 依赖 Ray 2.11 新增的ActorUnavailableErrorturbopufferTurbopuffer 向量数据库连接turbopufferawsAWS Glue 目录与 S3 Tablesboto3、mypy-boto3-glueicebergApache Iceberg 表格式读写pyiceberg 0.7.0, ! 0.9.1, ! 0.10.0, 0.11.1deltalakeDelta Lake 表格式deltalake 1.6.0,1.7.0unityUnity CatalogDatabrickshttpx、unitycatalog、deltalakelanceLanceDB / Lance 向量存储daft-lance0.5.0,0.6.0clickhouseClickHouse 数据库连接clickhouse_connectazureAzure Blob Storagefsspec、adlfsgoogleGoogle Gemini API 的 AI 函数google-genai、numpy、pillowkafkaApache Kafka 流式数据源confluent-kafkagravitinoApache Gravitino 目录requestspostgresPostgreSQL 数据库连接psycopg[binary]、pgvector、sqlglot、connectorxsqlSQL 数据库通用connectorx、sqlalchemy、sqlglotpandaspandas 互操作pandasnumpyNumPy 互操作numpyaudio音频数据读取WAV/MP3/FLACsoundfile、librosavideo视频数据读取MP4 等av、pillowhdf5HDF5 文件读取h5py、numpyhttpHTTP / HTTPS 文件源fsspec[http]mcapMCAP机器人日志容器格式读取无读取器为原生实现该 extra 为兼容性保留的空操作见 pyproject.toml 注释常见组合示例按使用场景组合安装例如# 使用 Hugging Face 数据集 OpenAI 做 LLM 推理 pip install -U daft[huggingface,openai] # 使用本地 Transformers 模型GPU 推理 pip install -U daft[transformers] # 搭建 Ray 分布式集群 pip install -U daft[ray] # 读写 Iceberg AWS S3 pip install -U daft[iceberg,aws] # 处理音频与视频数据 pip install -U daft[audio,video]一次性安装全部功能如果不关心安装体积希望把所有可选能力一次装齐pip install -U daft[all]all这个 extra 在 pyproject.toml 中被定义为其余所有 extra 的并集audio、aws、azure、clickhouse、deltalake、google、gravitino、hdf5、http、huggingface、iceberg、kafka、lance、mcap、numpy、openai、pandas、postgres、ray、sql、transformers、turbopuffer、unity、video因此它会连同torch、ray等重型依赖一起安装。为什么可选依赖可以按需加载Daft 对可选依赖采用**懒加载Lazy Import**机制核心模块在导入时并不会强制 import 这些库只有真正用到对应功能时才动态引入。这一点在 daft/dependencies.py 中体现得非常清晰——av、confluent_kafka、librosa、torch、tensorflow等都被包装为LazyImport对象而不是在import daft时立即加载。这意味着只做结构化数据分析时不装任何 extra 也能正常使用缺少某个可选库时只会在调用对应功能时报错不会影响其余功能安装体积和启动时间得到有效控制。使用 Nightly 构建尝鲜最新特性Daft 每天都会从最新的main分支构建并发布 Nightly 版本适合希望提前体验新功能与 Bug 修复的开发者pip install daft --pre --extra-index-url https://nightly.daft.ai--pre允许 pip 安装预发布版本--extra-index-url https://nightly.daft.ai指定 Nightly 包的额外索引源。⚠️稳定性警告Nightly 构建可能包含不稳定或实验性的改动不建议用于生产环境。仓库的 Rust 工具链本身也跟随 nightly 通道rust-toolchain.toml 固定为nightly-2025-09-03因此从源码构建 Daft 同样属于“尝鲜”性质的开发流程适合贡献者而非生产使用者。旧 CPU 兼容问题使用 LTS 版本daft-lts如果在运行 Daft 时遇到Illegal instruction非法指令错误通常意味着你的 CPU 不支持某些较新的指令集——例如 AVXAdvanced Vector Extensions。默认发布版本针对现代 CPU 开启了向量化指令优化旧 CPU 无法执行这些指令便会直接崩溃。此时应改用 LTS长期支持版本pip install -U daft-ltsLTS 版本的代价⚠️性能影响LTS 版本会限制可用的 CPU 指令集无法利用向量化运算因此性能明显更慢。仅在标准包无法运行时才应使用 LTS 版本。从引擎源码可以印证向量化对性能的重要性Daft 的数值计算大量依赖 SIMD 指令例如daft-core的算术运算在src/daft-core/src/array/ops/arithmetic.rs中针对不同指令集做了优化daft-decoding使用atoi_simd、simdutf8等 SIMD 库加速解析见 src/daft-decoding/Cargo.tomldaft-minhash也提供了load_simd加载 SIMD 路径src/daft-core/src/array/ops/minhash.rs。这些优化在 LTS 构建中会被禁用从而带来可观的性能回退——这正是官方建议“仅在必要时使用”的原因。从源码构建开发者视角如果你需要为 Daft 贡献代码或定制构建仓库的 Makefile 提供了完整的开发构建流程# 编译并安装debug 模式开发用 make build # 编译并安装 release 优化版本 make build-release # 只生成 wheel 文件不安装 make build-whl这些目标底层通过maturin develop --uv/maturin build --release完成见 Makefile构建系统要求见 pyproject.tomlmaturin1.5.0,2.0.0。源码构建前请确保本机具备 Rust 工具链版本约束见 rust-toolchain.toml并建议使用仓库提供的uv虚拟环境uv.lock已锁定完整开发依赖。普通用户无需走源码构建路线——PyPI 上的预编译 wheel 已覆盖主流平台直接使用前面的 pip 命令即可。安装后的下一步想快速跑通一个真实的多模态数据工作流参见 快速开始指南其中演示了如何加载 Hugging Face 电商数据集、预览数据并执行 AI 推理该示例需要daft[openai]及numpy、pillow。想了解 Daft 的 AI 函数LLM 提示、embedding、图像分类如何使用对应 provider可参考 AI 函数文档。需要按需裁剪自定义 UDF、了解分布式运行可继续查阅 docs 目录 下的用户指南。总结场景推荐命令标准安装大多数用户pip install -U daft按需启用特定功能pip install -U daft[extra1,extra2,...]安装全部可选功能pip install -U daft[all]体验每日最新构建pip install daft --pre --extra-index-url https://nightly.daft.ai旧 CPU出现 Illegal instructionpip install -U daft-lts源码开发构建make build或make build-release选择安装方式的核心原则是默认安装满足日常结构化数据处理按需加载的 extras 让 AI 与多模态功能随手可得Nightly 适合测试尝鲜LTS 仅在旧硬件上作为兜底方案。依据本文并结合 pyproject.toml 中每个 extra 的真实依赖清单你可以在任何环境中快速、准确地完成 Daft 的部署。【免费下载链接】DaftHigh-performance data engine for AI and multimodal workloads. Process images, audio, video, and structured data at any scale项目地址: https://gitcode.com/GitHub_Trending/da/Daft创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表