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文件中提供。

编辑推荐精选

TRAE编程

TRAE编程

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

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

AI工具TraeAI IDE协作生产力转型热门
蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

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

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

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

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

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

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

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

下拉加载更多