为了账号安全,请及时绑定邮箱和手机立即绑定

Python和JavaScript开发者必试的7大开源工具 🚀

开源工具几乎是每个开发者都会用到的,无论是学编程还是开发实际应用。

Python 最近在 GitHub 上变得最受欢迎,超过了 JavaScript。现在,Python 和 JavaScript 都成了开源领域里最受欢迎的两种编程语言。

本文将介绍 7 款开源工具,这些工具可以帮助 Python 和 JavaScript 开发人员更好地完成项目,从而提升项目质量。

让我们出发吧! 🚀

GIF

你可以用这些工具在你的项目中,甚至可以为它们做出贡献,让它们变得更好。

此处留空 等等 (dengdeng)

构建可靠的网络爬虫 — Crawlee (https://crawlee.dev/)

爬虫

Crawlee 是一个用于网页抓取和浏览器自动化的开源库。它支持通过 Puppeteer 和 Playwright 等工具进行 HTTP 请求和无头浏览器抓取。

它的反阻塞功能,如代理轮换和浏览器指纹,帮助避开检测。Crawlee 还支持自动扩展规模并支持 TypeScript,无论任务大小,都能保证可靠和高效。

克劳利

最好的一点是? Crawlee 可以无缝地与 Node.js 以及 Python 一起使用。如果某个网站需要 JavaScript 渲染,你可以轻松切换到浏览器爬虫。之后,如果你找到更适合的 API,只需切换回 HTTP 爬虫,而无需重写你的项目。

运行 Crawlee 快速开始,先安装包含所需依赖和示例代码的 Crawlee CLI 即可。

npx crawlee create my-crawler
# 运行此命令来创建一个新的爬虫项目 (Run this command to create a new crawler project)

进入全屏 退出全屏

Crawlee自带三个主要的爬虫类:CheerioCrawlerPuppeteerCrawlerPlaywrightCrawler,它们拥有相同的接口。

你可以在项目中通过以下方式运行Crawlee:

在终端中输入以下命令来安装crawlee npm包:

    npm install crawlee

全屏模式 / 关闭全屏

我们来看一个用Crawlee抓取网站所有链接的例子:

import { PlaywrightCrawler } from 'crawlee';

const crawler = new PlaywrightCrawler({
    async requestHandler({ request, enqueueLinks, log }) {
        log.info(request.url);
        // 添加页面中的所有链接到 RequestQueue
        await enqueueLinks();
    },
    maxRequestsPerCrawl: 10, // 限制仅10个请求(如果你想爬取更多链接,可以去掉这个设置)
});

// 用初始请求启动爬虫
await crawler.run(['https://crawlee.dev']);

请点击全屏,退出全屏

这里使用enqueueLinks()方法,爬虫在遍历页面的过程中来添加新的链接到RequestQueue。去掉maxRequestsPerCrawl选项,你可以用它来抓取一个域上的所有URL。

你可以从其文档中找到更多示例和资源,帮助你在项目中正确地使用Crawlee。

该项目在 GitHub 获得了超过 15k 的星标,并且在不断进步和完善。

快来给Crawlee点个Star吧,在GitHub上!⭐️

(内容省略)

或者使用此处省略内容 (chǔcǐ shěnglüè nèiróng)

🚨 活动来了! 🚨

Crawlee 送礼活动

Crawlee 给社区送 3 件专属的卫衣。

  1. 点击下面的按钮给Crawlee在GitHub上的项目点个星。
  2. 在文章评论区留下你的GitHub用户名吧。

行了!

Crawlee将在2024年12月31日抽取幸运获奖者。

快来参加我们的赠品活动!

此处省略内容

Marimo - Python的反应式(Reactive)笔记本

玛里莫 "这种可爱的水草叫玛里莫"

Marimo(一个开源的基于Python的笔记本环境,网址:https://marimo.io/)使处理数据变得更加互动和直观。它支持Python脚本和笔记本文件,并支持通过Git进行无缝版本控制。

Marimo的突出特点是其互动式用户界面,当一个部分发生变化时,其他依赖的部分会自动更新,非常适合用于实时数据分析,使其成为实时数据探索的理想工具。

它非常易用,提供了许多高级用户所需的特性。比如,它可以用来制作互动工具,例如嵌入式视觉化工具。

水苔球

注:这里可以使用“水苔球”或其他更贴切的中文表达来代替“摩洛莫”。

你可以在终端运行以下安装命令来快速开始Marimo:

    pip install marimo  # 或用 conda install -c conda-forge marimo
    marimo tutorial intro

运行以上命令来安装marimo并查看教程介绍

切换到全屏,切换回正常模式

创建或编辑笔记本吧:

    可以进行马里莫编辑 (一种特定的编辑方式)

进入全屏 退出全屏

打开应用:

marimo:运行一下 your_notebook.py

进入全屏, 退出全屏

和玛里莫:最好的部分

  • 将您的笔记本运行成网络应用:通过隐藏Python代码,将您的笔记本变成一个互动网络应用。

  • 当作脚本, 运行你的笔记本像脚本一样

  • 自动转换:使用命令行(CLI)自动把Jupyter笔记本转成marimo笔记本。

你可以通过它的文档了解更多关于Marimo的内容,并在那里找到相关的资源,以便将其正确地应用于你下一个Python工作流程中。

他们在GitHub上有8千多颗星,社区发展得非常快!

给Marimo在GitHub上点星⭐️

此处省略内容(省略内容)

Deno — 现代 web 的 JavaScript 运行时

Deno(Deno 是一个用于运行 JavaScript 和 TypeScript 代码的运行时环境。)

Deno 是一个开源的 JavaScript 运行时,旨在为开发者提供现代化且安全的开发体验。Deno 基于 V8 和 Rust 构建, 默认情况下即简易又安全。

只需在你的 Mac 或 Linux 上运行一个命令就可以安装 Deno:

如果你想安装Deno,可以使用下面这个命令:

    curl -fsSL https://deno.land/install.sh | sh

切换到全屏模式,或退出全屏

在 Windows 中,运行这个。

irm https://deno.land/install.ps1 | iex

运行此PowerShell脚本以安装Deno环境.

进入全屏 退出全屏

它还支持原生 TypeScript,并包含内置工具来处理代码校验、代码格式化、测试和编译成独立可执行文件等任务。

虽然 Deno 与 Node.js 有很大不同,它提供了一个 Node.js 兼容层,这样让你几乎无需改动就能运行现代 Node.js 项目。此外,你也可以从 Node.js 迁移到 Deno,让你的代码变得更简洁高效。

点击查看Deno(一个JavaScript运行时)

Deno 采用严格的权限模型,除非明确授予权限,否则对文件、网络和环境的访问都会受到限制。其全面的 API 和极简的配置使其成为云和边缘计算的理想选择,提供了构建和运行应用程序的灵活环境。

通过其官方文档找到适当的资源来正确地将其融入你的工作流程中,并了解更多关于Deno的信息。

他们在 GitHub 上有 98k+ 的星标,成千上万的开发者在使用 Deno!

Deno 星 GitHub 上 ⭐️](https://github.com/denoland/deno)

……

Wasp - 更快地构建全栈Web应用

如图所示,这是一只黄蜂。黄蜂

Wasp(https://wasp-lang.dev/)是一个开源框架,旨在简化全栈 web 开发流程。你可以轻松地在 React、Node.js 和 Prisma 上构建 Web 应用程序。

它简化了现代化 web 应用的设置和编排,通过为你处理样板代码和配置。凭借其简单的配置语言,Wasp 让开发人员可以专注于应用的核心逻辑,同时自动化重复性任务,从而使开发变得更快更高效。

对于快速启动 Wasp 时,请在 Linux / OSX / WSL (Windows) 使用以下安装命令:

运行安装脚本
curl -sSL https://get.wasp-lang.dev/installer.sh | sh

全屏进入,全屏退出.

新建一个应用:

初始化黄蜂

全屏, 退出全屏

现在,打开Wasp应用:

    cd <我的项目名> 
    wasp 启动

全屏模式退出全屏

你可以在本地服务器上轻松查看这个全栈 Web 应用,网址是http://localhost:3000/

如果你想看看如何轻松地在下一个全栈项目中使用 Wasp,查看他们的教程这里

你可以通过它的文档了解更多关于Wasp框架的内容,并在其文档中找到合适的使用方法。

他们在 GitHub 上有13K多的点赞,还有很好的社区帮助!

在GitHub上给Wasp点星 ⭐️

……

PydanticAI – 代理架构

PydanticAI

PydanticAI 是一个新的代理平台,旨在简化将生成式AI集成到生产级Python应用中。

特别值得一提的有:

  • 结构化的输出验证:它确保AI生成的输出符合预定义的数据结构,减少意外情况。

  • 管理依赖关系:提供简单的工具来轻松管理同步或异步依赖项。

  • 模型无关性: 支持多种AI模型,例如OpenAI、Groq和Gemini的模型,从而可以在不同应用场景中实现无缝集成

充分利用 Pydantic 的优势,并借助 OpenAI SDK 的验证功能,结合 Anthropic SDK、LangChain、LlamaIndex、AutoGPT、Transformers、CrewAI、Instructor 等多个工具。

PydanticAI 可以在 PyPI 上找到,所以你可以通过运行命令来进行安装:

pip install PydanticAI

在命令行中输入以下命令来安装 pydantic-ai

pip install pydantic-ai

进入全屏 退出全屏

您可以选择与可选的Logfire集成一起使用,或者只需安装示例。

安装包含示例的pydantic-ai包
pip install 'pydantic-ai[examples]'

进入全屏, 退出全屏

这些例子要求您设置与LLMs的认证并遵循额外步骤,所有相关内容可以在文档中找到。

PydanticAI 是一个新的代理框架工具,部分功能仍处于测试阶段。如果你打算试试,你可以在这个早期阶段参与进来。

你可以从其文档中了解更多关于PydanticAI代理框架工具的信息,并通过文档找到如何在您的工作流中适当使用它的资源。

他们在 GitHub(https://github.com/pydantic/pydantic-ai)上有 1.3k+ 星标,并且拥有强大的 Pydantic 社区的支持!

给 PydanticAI 点个星 ⭐️


PocketBase — 单文件后端

PocketBase "PocketBase的官方图片"

PocketBase 是一个开源的自托管的后端解决方案,旨在构建全栈应用程序,注重简洁性和便携性。

它提供了诸如认证、文件存储和实时数据增删改查操作等必备功能,所有这些功能都在一个服务器实例中实现。非常适合小型至中型应用,比如移动应用后端和SaaS平台。

一些很棒的功能有:

  • 支持多种前端框架,例如 Svelte、Angular、React 等

  • JavaScript, 和 Dart SDK

    自行托管

PocketBase 是为了帮助构建独立的应用程序而创建的。对于需要轻量级后端但又不想处理多个服务复杂性的项目来说,它是很好的选择。

这个项目是完全开源的,并且由志愿者维护,没有任何资金赞助。你可以通过这里参与其中,并探索文档中的功能和实现细节。

他们在 GitHub 上获得了 41k+ 的星,并由业余贡献者们维护。

给 PocketBase 点赞或加星标在 GitHub 上](https://github.com/pocketbase/pocketbase)


KitOps - 让机器学习合作更简单

KitOps

KitOps 是一个开源工具,它重新定义了数据科学家、开发人员和运维工程师如何在 AI/ML 模型、数据集和源代码上合作。

通过利用Modelkit,一种OCI打包标准,KitOps提供了一种统一的方法来打包、版本管理和部署资源和工具,在不同环境中实现资源的打包、版本管理和部署。

使用KitOps,你需要安装Kit CLI并通过运行命令来检查版本。

    套件版本号

进入全屏 退出全屏

登录符合OCI规范的注册表,可以使用以下命令运行:Jozu Hub是KitOps用户的首选。

运行 kit 登录 jozu.ml

点击以进入或退出全屏模式。

登录后,从 Jozu Hub 下载一个示例 Modelkit,并通过运行以下命令:在您的工作流中测试它。

kit unpack jozu.ml/jozu-quickstarts/fine-tuning:latest # 解包 jozu 的快速入门教程

全屏 退出全屏

解包命令会将 ModelKit 的内容解压到当前目录,你可以自己试试,了解更多。

ModelKit

关键特性

  • 遵循OCI规范的打包:将模型、数据集、配置和代码打包成模型套件(ModelKits),以便简化版本控制。

  • 注册的灵活性:兼容任何符合OCI标准的注册表,确保与现有的AI/ML工作流程无缝对接。

  • 基于 YAML 的自定义:使用直观的 YAML 文件配置管道、微调 LLM 和构建 RAG 管道。

最棒的部分是?

如果你是一名使用Python脚本在Jupyter Notebook上工作的数据科学家,并且你的团队中有构建LLM模型的AI工程师,KitOps可以帮忙填补这个鸿沟。

它能够使团队间无缝合作,将多样化的流程整合成统一的工作流程,从而实现最高效率。

你可以通过其文档找到如何在你的工作流程中适当使用KitOps的资源,也可以了解更多关于KitOps的信息。

他们有 500 多个星标在 GitHub(https://github.com/jozu-ai/kitops)上,并且社区还在不断壮大

GitHub 上给 KitOps ⭐️点个星


就是这样!我主要介绍了一些对Python和JavaScript开发者有用的工具。如果你还知道其他超棒的工具,不妨在评论区分享一下!

希望这篇文章对你有帮助。如果觉得有用,欢迎分享给你的开发者朋友们吧!

同时,关注我 了解更多这样的内容:

点击此处查看arindam_1729图片

Arindam Majumder 关注一下

开发人员倡导者 | 技术作者 | 40万+ 阅读量 | Mail for Coll

如有付费合作需求,请邮件联系我:arindammajumder2020@gmail.com。

读到这里,谢谢你!

GIF 如图所示,点击链接查看GIF图。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消