nbdev

nbdev

笔记本驱动开发平台 提升文档测试打包效率

nbdev是一个笔记本驱动的开发平台,通过简单的笔记本编写和轻量级标记自动生成文档、测试和打包。它支持LaTeX、搜索和自动超链接,简化包发布,实现笔记本和源代码双向同步,提供并行测试和Git友好功能。nbdev提高了开发效率,促进软件工程最佳实践。

nbdev开发平台文档生成测试自动化版本控制Github开源项目

开始使用

CI

nbdev是一个笔记本驱动的开发平台。只需编写带有轻量级标记的笔记本,即可免费获得高质量的文档、测试、持续集成和打包!

与传统的编程环境相比,nbdev使调试和重构代码变得更加容易,因为你始终可以随时使用实时对象。nbdev还提倡软件工程最佳实践,因为测试和文档都是一等公民。

  • 文档使用Quarto自动生成,并托管在GitHub Pages上。文档支持LaTeX,可搜索,并自动添加超链接(包括通过nbdev-index对许多包的开箱即用支持)
  • 将包发布到PyPI和conda,以及简化包发布的工具。自动遵循Python最佳实践,例如,只有导出的对象才会包含在__all__
  • 笔记本和纯文本源代码之间的双向同步,允许你使用IDE进行代码导航或快速编辑
  • 测试作为普通笔记本单元编写,可以用一个命令并行运行
  • 持续集成开箱即用,使用GitHub Actions运行测试并重建文档
  • Git友好的笔记本,使用Jupyter/Git钩子清理不需要的元数据,并以人类可读的格式呈现合并冲突
  • ……还有更多!

安装

nbdev可在macOS、Linux和大多数类Unix操作系统上运行。它可以在Windows的WSL下运行,但不能在cmd或Powershell下运行。

你可以使用pip安装nbdev:

pip install nbdev

……或者使用conda(或mamba):

conda install -c fastai nbdev

请注意,nbdev必须安装在你用于Jupyter和项目的相同Python环境中。

如何使用nbdev

学习如何使用nbdev的最佳方式是完成书面教程或观看视频教程:

<a href="http://www.youtube.com/watch?v=l7zS8Ld4_iA" target="_blank" title="nbdev walkthrough"><img src="https://github.com/fastai/logos/raw/main/nbdev_walkthrough.png" style="border-radius: 10px" width="560" height="315" /></a>

另外,还有一个视频教程的缩短版本,使用unsilence Python库加速了编码部分 - 它比原版快27分钟,但稍难跟上。

你也可以在终端中运行nbdev_help来查看所有可用命令的完整列表:

!nbdev_help

(此处省略命令列表,与原文相同)

常见问题

问:警告"Found a cell containing mix of imports and computations. Please use separate cells"是什么意思?

A: 你不应该有未导出且同时包含import语句和其他代码的单元格。例如,不要在一个单元格中这样做:

import some_module some_module.something()

相反,应将其分为两个单元格,一个用于import some_module,另一个用于some_module.something()

这样做的原因是,当我们创建你的文档网站时,我们会运行导入、导出的单元格和show_doc函数,以确保你所文档化的所有函数签名都是最新的。当你在一个单元格中混合导入和其他代码时,其他代码也会被执行,这可能在创建网站时导致错误(或至少会导致速度变慢)。

问:为什么nbdev要求root权限?如何在没有root权限的情况下安装Quarto?

答:当你设置第一个项目时,nbdev会尝试自动为你下载和安装Quarto。这是我们用来创建你的文档网站的程序。

Quarto的标准安装过程需要root权限,因此nbdev在安装过程中会要求你输入root密码。对大多数人来说,这样做没问题,一切都会自动处理 - 如果是这样,你可以跳过本节的其余部分,这部分讨论了在没有root权限的情况下安装。

如果你需要在Linux上没有root权限的情况下安装Quarto,首先cd到你想存储它的位置,然后下载Quarto,并输入:

dpkg -x quarto*.deb . mv opt/quarto ./ rmdir opt mkdir -p ~/.local/bin ln -s "$(pwd)"/quarto/bin/quarto ~/.local/bin

要使用这个非root版本的Quarto,你需要将~/.local/bin添加到你的PATH环境变量中。(或者,更改ln -s步骤,将符号链接放在你的PATH中的其他位置。)

问:有人告诉我不要使用笔记本进行"严肃"的软件开发!

答:观看这个视频。别担心,尽管我们在过去三年里已经使用nbdev开发了各种"非常严肃"的软件项目,包括深度学习库API客户端Python语言扩展终端用户界面等,我们仍然经常听到这种说法!

贡献

如果你想为nbdev做出贡献,请务必查看贡献指南。这个项目遵循fastai的行为准则。通过参与,你应该遵守这个准则。总的来说,我们努力遵守开源软件开发中普遍接受的最佳实践。

确保你已经通过在克隆的仓库中运行nbdev_install_hooks安装了nbdev的git钩子。

版权

版权所有 © 2019年起 fast.ai, Inc. 根据Apache License, Version 2.0("许可证")获得许可;除非符合许可证,否则你不得使用此项目的文件。许可证的副本在本仓库的LICENSE文件中提供。

编辑推荐精选

博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
商汤小浣熊

商汤小浣熊

最强AI数据分析助手

小浣熊家族Raccoon,您的AI智能助手,致力于通过先进的人工智能技术,为用户提供高效、便捷的智能服务。无论是日常咨询还是专业问题解答,小浣熊都能以快速、准确的响应满足您的需求,让您的生活更加智能便捷。

imini AI

imini AI

像人一样思考的AI智能体

imini 是一款超级AI智能体,能根据人类指令,自主思考、自主完成、并且交付结果的AI智能体。

下拉加载更多