2024 年你应该了解的 11 个开源 Python 项目
介绍
Python 是最简单的编程语言之一,几乎可以用于所有技术领域——无论是数据科学、自动化、物联网、人工智能、机器学习还是 Web 开发。Python 最有趣的一点是它是100% 开源的,这使其更加强大和充满活力。
然而,大多数开发人员在构建 Web 应用程序时忽视了 Python,这限制了它的潜力。
在本文中,我介绍了每个 Web 开发人员都应该关注的 11 个开源 Python 项目。
出发啦!🚀
Opal - 开放策略管理层
如果您是一名 Web 开发人员,正在负责一个大型项目,而不同的团队或用户组需要对敏感数据拥有不同的访问权限,那么实施或管理起来可能会有些困难。如果您也遇到这种情况,Opal 将会是您工作流程中的一个重要补充。
Opal提供了一种简单的方法来强制特定用户执行权限,确保合适的人员能够安全地访问正确的数据。它是一个开源管理层,用于管理 Open Policy Agent 等策略引擎中的策略,并帮助团队定义访问控制流程。
Opal允许 Web 开发人员专注于构建功能,同时处理复杂的权限,从而简化了在不同用户级别的应用程序中管理用户角色的复杂性。
Opal的核心功能都是关于实时权限的,但它与 Web 开发人员的关系如下:
-
它可以即时授予和撤销权限,因此 Web 开发人员无需在其应用程序中手动更新用户访问权限。
-
它允许开发人员将策略编写为代码,从而使其更易于版本控制、审查和管理。
-
它可以轻松插入到安全的基于云的服务微服务(如 AWS 或 Kubernetes)中,以便轻松、安全地进行策略更新。
对于任何希望在项目或应用程序中添加实时权限更新的人来说,这款工具都是完美的选择。您可以加入他们的Slack频道了解更多信息。
他们目前在GitHub上拥有超过 4000 颗星,这表明他们拥有更广泛的社区支持和信任。你也可以通过为他们的项目点赞来支持他们:
🚀 加入许可证发布周:
在此注册
Taipy - 构建 Python 数据和 AI Web 应用程序
你是否想过,构建一个简单的 AI 项目,而不需要使用前端框架来使其变得复杂?如果是的话,这个工具正适合你。
Taipy是一款使用 Python 和现有模型创建数据或 AI 驱动的 Web 应用程序的工具。它专为需要快速可视化数据的机器学习工程师和数据分析师、寻求轻松构建完整项目的 Python 开发人员,以及希望以简单方式创建具有基本功能的自定义数据仪表板的业务分析师而设计。
Taipy 使用 Python 命令构建组件、图形界面和仪表板。它主要用于数据驱动的项目,是处理大型数据集的理想选择。
Taipy 非常适合复杂的工作流程,提供节点来有效地处理它们,并且它与 pandas 集成,允许您直接在项目内操作数据。
Reflex - 使用纯 Python 构建 Web 应用程序
作为一名纯 Python 开发者,或者一名对前端开发一无所知的后端开发者,我深知项目通常只有代码,没有用户界面,所以无法展示自己的项目是多么痛苦。如果你也是这样,那么这个工具绝对能帮你改变现状。
通过 reflex,您可以如此快速、轻松地使用纯 Python 以最简单的方式构建交互式用户界面;这太酷了!
这减少了学习最新、最酷的前端框架的需要;它处理用户界面和服务器逻辑。
与传统的 Web 开发不同,该工具通过纯 Python 构建组件来工作。在传统的 Web 开发中,全栈应用程序有两个独立的应用程序:一个处理用户界面,另一个处理服务器逻辑或状态管理。Reflex 可以处理用户界面,Flask 处理服务器逻辑。在 Reflex 中,所有内容都构建在一个代码库中,并且可以存储在一个项目文件中。
此外,您无需学习如何在 Heroku、AWS 或 Azure 上部署。Reflex 提供了一种使用单个命令轻松部署项目的方法。
Crawlee ——Web 抓取和浏览器自动化库
数据抓取非常有用,因为它可以让你匿名地从网站收集大量数据,这有助于市场调研、业务分析、人工智能训练和竞争分析。这主要通过 JavaScript 渲染或 HTTP 库来实现。为了让数据抓取变得简单有趣,我们引入了 crawlee。
Crawlee是一款致力于让所有开发者都能轻松进行网页爬虫的工具。它是一个用 Python 构建的开源项目。Crawlee最初是为Typescript开发者打造的,目前已获得 1.3 万颗星,下载量超过 10 万次。
Crawlee for Python 的构建是为了使使用 Python 进行网页抓取变得非常简单,与基本的 HTTP 抓取库相比,crawlee 具有以下功能:
-
它支持 beautiful soup、HTTPX 和像 Playwright 这样的无头浏览器来抓取带有或不带有 Javascript 渲染的网站。
-
它使用代理轮换和会话管理来帮助避免被网站阻止,从而可以非常轻松地使用反机器人措施抓取网站。
-
它基于异步 IO 构建,这使得它对于 I/O 密集型操作或废弃的大型项目具有高性能
Portkey AI Gateway - AI 应用的控制面板
自 ChatGPT 发布以来,人工智能几乎成了所有科技讨论的热门话题。很难想象一家初创公司不在自己的产品中添加人工智能功能。作为一名 Web 开发者,你正在尝试探索当前的人工智能市场,但又不太担心处理复杂的大型语言模型基础设施带来的麻烦,那么这款工具或许正是你所需要的。
Portkey 是一个开源AI 网关,旨在轻松集成 OpenAI、Phi-3 和 Anthropic 等大型语言模型 (LLM)。它允许开发者快速构建 AI 功能,而无需处理 LLM 基础设施的难题。
AI 网关可处理跨多个 AI 提供商的 API 调用,让您轻松切换模型、管理提示并跟踪性能。此外,它还具备缓存、负载均衡和重试等功能,确保您的应用保持快速可靠。
LLMware - 面向复杂企业的人工智能
如果我想学习如何构建和部署大型语言模型,LLMware将是我的首选工具。它专为像我这样不需要深入了解 LLM 但仍想尝试的人设计。它提供预构建的 LLM 组件和可立即使用的可定制模型,让我可以快速创建聊天机器人。
有了 LLMware,Web 开发者无需从头构建模型,他们可以专注于微调现有模型以满足自身需求。LLMware 负责管理 LLM 的扩展和性能监控,让我能够专注于构建 AI 驱动工具的创意方面。最重要的是,它提供了丰富的模型供我选择。
在构建下一个 AI 项目时,请考虑使用 LLMware 来处理模型的基础设施,同时专注于创建项目的交互方面。
LLMware 在GitHub上拥有 4.5k+ 颗星,因此受到开源社区的广泛支持。
Beautiful Soup - 网页抓取工具
每个 Web 开发者在其职业生涯中都应该至少了解一次数据抓取的工作原理,因为它可以帮助你从网站收集大量数据用于研究。Beautiful Soup就是一款出色的工具,它能够做到这一点。
它是一个开源 Python 库,使用解析器从 HTML 和 XML 网站或页面中提取数据。它拥有独特的网站搜索和数据修改方式,可以节省您数小时的精力和调试时间。
Python 中的每个网络抓取工具都因美丽汤的美丽而存在,因此如果您需要构建自己的工具,请考虑使用这个库。
Gunicorn - 用于 UNIX 的 Python WSGI HTTP 服务器
Gunicorn是 Green Unicorn的缩写,它是一个 Python WSGI HTTP 服务器,许多 Python 开发者都在使用它,但它在运行 Web 应用程序方面的真正价值却常常被忽视。想象一下,你正在开发一个 Python 项目,需要同时流畅地处理多个用户请求。Gunicorn会帮你完成一些幕后工作。它可以流畅地处理请求,让你无需担心服务器管理。
Gunicorn 的核心组件是 WSGI,它是 Web 服务器网关接口,定义了 Web 服务器与 Web 应用程序通信的流程。Gunicorn 充当了 Nginx 或 Apache 等 Web 服务器与 Django 和 Flask 等 Web 应用程序之间的中间人。
如果您计划使用 Python 框架构建全栈应用程序,则需要熟悉此工具。它非常适合管理大型 Python 项目。
Scrapy——网页抓取工具
Scrapy不仅仅是一个网页抓取工具,它更是一个功能远超 Beautiful Soup 的框架。Beautiful Soup 可以帮助你从 HTML 和 XML 文件中提取数据,而Scrapy 则更进一步,可以从页面中抓取所有内容,跟踪链接,保存数据,进行数据抓取等等。
Scrapy专为处理大型爬虫项目或任务而设计,因为它内置了爬虫支持。唯一的缺点是设置。它的学习曲线比较陡峭,对于不熟悉网页爬虫的新手来说,可能需要一段时间才能上手。
如果您正在寻找一种自动化工具来大规模处理多页面抓取,Scray 应该是您的首选工具包,它在一个地方提供所有内容。
Wagtail - 开源 Python CMS
CMS,即内容管理系统,是一款允许用户创建、管理和修改网站内容的软件,无需任何技术背景或知识。对于想要管理博客但不知道如何从头开始创建的博主来说,CMS 是理想的选择。
Wagtail是一个基于 Python 构建的开源 CMS,它提供了一种轻松管理网站内容的方法。它让您完全控制前端,并允许您构建可自定义的页面。由于它基于 Django 构建,因此它熟悉 MVC 架构,非常适合小型或大型项目。
该工具旨在使内容管理变得超级简单高效。它还具有团队成员协作的功能。
Streamlit - 构建数据应用程序的更快方法
今天推荐的最后一款工具是 Streamlit。我第一次尝试 Streamlit 是想开发一个 AI 驱动的工具,但又不想用前端框架构建用户界面。
Streamlit 提供了一种简单快捷的 Web 应用构建方法。与 Taipy 类似,它提供了一种响应式方法,可以轻松创建数据应用。虽然 Streamlit 最适合用于构建机器学习应用或可视化数据仪表盘,但它也可以用来构建简单的基础应用。
尽管 Streamlit 的响应速度不如 Taipy,但对于任何希望使用 Python 构建 AI 应用的人来说,它仍然是一个绝佳的选择。我喜欢 Streamlit 的一点是它的简洁易用,这使得它非常适合为任何数据或 AI 应用构建原型。
结论
总结一下这篇文章,此列表中提到的开源 Python 项目很重要,因为它们可以帮助改善您的开发工作流程和 Web 应用程序的性能。
Python 开发人员主要负责单独处理 Web 项目的后端方面或分析数据,但使用这些工具,您可以构建全栈 Web 应用程序、完整的 Web 抓取应用程序或在 Web 项目中处理 CMS,而无需了解前端。
如果我们遗漏了您认为适合 Python 开发人员或您最喜欢的工具,请在评论中分享。
希望你喜欢。谢谢!
文章来源:https://dev.to/arindam_1729/11-open-source-python-projects-you-should-know-in-2024-583o