您好,欢迎收听 Python Bytes,我们将直接为您带来 Python 新闻和头条新闻。这是第 405 集,录制于 2024 年 10 月 14 日。我是 Brian Ocken。我是 Michael Kennedy。本期节目由 Scout APM 赞助。请稍后收听他们的环节。如果您想与我们联系,向我们提问或提交文章,您可以在 Mastodon.com 上找到我们。
在 Fostodon.org 上。我们在 mkennedy、Brian Ocken 和 Python Bytes。如果您看到我们三个人,实际上会更好地联系到我们。或者您可以给我们发电子邮件。我们的网站 pythonbytes.fm 上有一个联系表单。如果您想观看直播,您可以加入我们的 YouTube 频道,访问 pythonbytes.fm/live,成为观众的一部分,或观看旧剧集。这很有趣。我们喜欢在聊天中收到问题。最后,一个
如果您想获得所有链接,只需收听并享受节目,然后稍后阅读链接即可。您无需记下任何内容。只需加入,访问 pythonbytes.fm,加入我们的邮件列表即可。访问“节目之友”,或直接说“注册新闻通讯”,我们将向您发送每周电子邮件,其中包含节目的所有链接和所有主题。因此,为了开始,Michael,我
开场白太长了。也许您可以简短一些。我会尝试一下。我会尽量简短,好吗?好的。更简洁。让我们谈谈 Briefer Cloud 的 Briefer。这对我来说是新的。根据我们听众的最新调查,显然有 98.4% 的人了解 Jupyter 和 Jupyter Notebook。好的。对吧?对于那些不知道的人来说,Notebook 是一种探索数据、将解释性图形与代码和分析混合在一起的方式。好的。
到目前为止,Jupyter Notebook 是进行 Notebook 类型编程最流行的方式,但并非唯一方式,对吧?我们之前讨论过 Shiny for Python,这是一个非常酷的选择。但今天我想告诉大家 Briefer。我的理论是,这个名字来源于提供简报的事物,因为它不仅仅是探索性数据 Notebook,它似乎更侧重于提供仪表板体验,
非开发人员,或者至少不是创建该事物的人来看,他们可以将其作为交互式网页进行探索。好的?好的。所以它是,我会告诉你他们的宣传语。它在一个地方同时提供仪表板和 Notebook。使用代码创建功能强大且灵活的仪表板、漂亮的 Notion 式 Notebook,并与您的团队共享。是的,这几乎概括了它。
我相信这曾经是一款商业产品。仍然是一款商业产品。别误会我的意思。它曾经是一个独有的商业项目,因为他们在顶部有一个大横幅。Briefer 现在是开源的。在 GitHub 上为我们加星标。让我们看看有多少人。3.3 千。这是一个相当可观的流量,对吧?相当不错。但是,如果您访问 briefer.cloud 上的网页,您可以看到更多关于这是什么东西的信息。
多人,即多个人可以一起工作。我认为与 Jupyter Notebook 相比,其中一个独特之处在于。例如,假设我想与 Postgres 数据库或类似的东西进行通信,作为我需要提取的数据的一部分。那么,您必须连接到 Postgres,并且
在您的 Notebook 中,您必须在 Notebook 中输入您的密码和连接字符串。这并非理想之选。您也许能够引入,我相信有一种方法可以引入环境变量或类似的东西,但这并不容易,对吧?因此,我认为这里的一个好处是,您可以连接数据库,然后编写 Python 和 SQL 来查询数据库,将其转换为正确的形状,对其进行过滤等等。然后,您可以使用此工具根据它创建可视化效果、仪表板和报告、数据应用程序等等。酷。
所以这就像您配置系统以了解您的数据连接,然后任何 Notebook 都可以与数据库通信,大致如此。显然,这并非完全通用的用例,但这就是想法,好吗?它也来自 Y Combinator。就像我说的那样,我认为它最初主要只是商业项目,然后才扩展。所以是的,它说连接您的数据源,运行一些查询,使用您的查询结果作为数据帧运行 Python 代码。
然后分享您的结果。他们在这里有一些很酷的示例。他们有 AI,因为 Y Combinator 显然必须有。但这些东西看起来不错。然后您可以拥有 Notebook 样式,并且可以创建一个仪表板,将不同的图表并排放置。
然后它们只是人们可以查看的网页。这很酷。是的。很整洁,对吧?我喜欢。是的,我的意思是,然后您将其发布到网络上。需要注意的是,如果您查看定价,则有两个选项。付费和非付费,对吧?开源、自托管、免费,从 GitHub 安装,开始运行。然后
然后是社区版,它有一个免费版、一个专业版和一个企业版。这不是任何类型的广告,对吧?但我确实认为,它是开源的并且具有这些很酷的功能(例如可执行 Python)这一事实非常巧妙。这里还有一些关于它的很酷的 Python 内容。我不记得我在哪里读到的了。哦,是的,您还可以放置一些滑块和日期选择器之类的东西,当人们与它们交互时,对吧,它会
更新发生的事情。但是您也可以,在这里的某个地方,是计划吗?是的。您可以安排您的 Python 块定期运行。如果它必须去,是的,它必须去提取,我不知道,来自某个 CSV 源的每日信息,或者谁知道呢,对吧?是的。总之,
这就是我所了解的。人们可以查看它。如果您在这里,当然有一个 docker-compose.eml。因此,如果您要自托管它,您可以使用 docker-compose 启动它。不错。
我知道上个月对大多数人来说学校开学了。它已经持续了一段时间,但仍然处于开始阶段。我当时正在考虑学生,并认为很多人正在学习一些新的网络知识。因此,我选择了一些关于学习新事物的主题。我们将从 Python 开始。我从……
已经忘记他的名字了,Jose Blanca。我认为他是编写它的人。是的,它是一本关于 Python 编程的入门书,但它是基于网络的。这很好,完全基于网络。它只是一个免费的、基本的入门教程。我认为这对很多人入门来说已经足够了。例如,他们正在参加一些编程课程,或者需要了解一些 Python 用于课程或项目。
因此,我喜欢它的一些方面。其中之一是它不是一个完整的概述。它并没有试图涵盖 Python 语言的每一个细节,而只是初学者入门可能需要的内容。我知道有很多很棒的培训教程,尤其是在 TalkPython 培训中,可以入门。但是如果您……
如果您只有没有钱和网络连接,我认为这可能是值得检查的东西。我想指出其他几个功能。它正在运行,如果我们滚动到底部,它正在运行
Corto,我认为我们已经介绍过这个,Corto 发布系统。我相信我们有。是的,它也来自 Shiny 的人。有些人制作了我之前提到的 Shiny for Python。它是基于该系统,并带有 Corto 实时扩展,允许使用 Pyodide 在浏览器中运行 Python。在底部,我们可以看到一个 GitHub 链接。因此,整个项目都是开源的。这正是我感兴趣的那种东西。整个项目都是开源的。因此,如果您想
例如,如果您想为您的公司或您自己的公司进行内部培训,或者如果您自己的老师想为自己的班级定制它,您可以,知道,分叉它并做您自己的事情,这我非常喜欢。而且我想,我很好奇,我很好奇它运行的是什么。所以我过去看了看 hello world。所以有,我们去 hello world。有一个,
这是您第一次真正使用代码。并且有这些,因为它是 Pyodide,您正在阅读关于 Python 的内容,然后有一些小的代码运行块,您可以运行一些东西。然后您可以重新启动并再次执行。但是您也可以在那里添加一些新内容。所以我只是添加了 import sys,print sys.version 来查看它运行的是哪个 Python 版本。它运行的是 3.12.1。
我猜,如果它已经运行 3.13,我会感到惊讶。嗯,但是,嗯,3.12.1 有点,它有点,我有点期待比这更新一点的东西。无论如何,它仍然非常好,比 3.8 好多了,但是,嗯,3.12.1,还不错。所以,嗯,能够运行一些东西。那么它里面有什么呢?让我们,嗯,嗯,如果我们进入介绍,有一个,嗯,
我忘了我在读什么了。没关系。是的。
Python 无处不在。我们喜欢 Python。如果一些课程超出了您的承受范围,或者如果您想随时随地学习,这可能是一个值得寻找的东西。或者我真正想到的是,像老师一样的人试图定制他们自己的介绍或他们试图使用 Pyodide 教授的不同内容。这是一个很好的例子。如果您不想从什么是虚拟环境以及您的路径和类似内容开始。
是的。嗯,还有,嗯,嗯,如果您想编写您自己的,例如,在线教程书籍,用于您正在介绍的特定主题,例如我正在考虑,嗯,看看我是否可以为测试概念做一些这样的事情。嗯,那会很有趣。是的。因为我会告诉你,我,我,嗯,我认识一些做研究并与老师(例如中学老师)合作的人,他们
他们正在选择某种编程语言与他们的学生一起使用,他们决定,他们说,哦,我们应该使用 R,因为 R 比 Python 更容易安装在 Chromebook 上。我在一条消息中说,不,不,实际上,您可以同时安装它们。但是,如果您在学校使用 iPad 或 Chromebook,您的网络浏览器就可以了,对吧?是的,使用这样的东西。这是一个非常好的选择。是的,完全正确。或者 Chromebook。
或许多其他新平台。这些,所以我们会看到,我们会看到更多这样的东西出现,我认为。所以,
我们绝对会的。非常酷。让我快速告诉您有关 Scout APM 的信息。他们是 Python Bytes 的大力支持者,我们非常感谢他们。因此,如果您厌倦了花费数小时试图找到影响您性能的问题的根本原因,那么您应该检查一下 Scout APM。它们是领先的 Python 应用程序性能监控工具,APM,并且
这可以帮助您更快、更轻松地识别和解决性能异常。Scout APM 可以关联瓶颈,例如内存泄漏、数据库查询缓慢、后台作业以及可怕的 N+1 查询(如果您在 Thorium 中进行延迟加载,最终可能会出现这种情况),然后您会说,哦,不,为什么这么慢?为什么您要对应该只有一个数据库查询的操作执行 200 个数据库查询?因此,您可以找出诸如此类的事情。它会将其直接链接回源代码,因此您可以减少在调试器和剥离日志中的时间,只需……
找到问题并继续前进。您会喜欢它,因为它是由开发人员为开发人员构建的。它易于设置。说真的,您可以在不到四分钟的时间内完成。太棒了。最好的部分是定价简单明了。您只需支付使用的数据费用,无需隐藏的超额费用或按座位定价。我刚学到这一点,Brian,他们也有。
他们为所有开源项目免费提供专业版。因此,如果您是开源维护者,并且想要为该项目使用 Scout APM,只需在他们的定价页面上给他们发送消息即可。
因此,您可以开始免费试用并立即获得见解。访问 PythonBytes.fm/scout。链接也在您的播客播放器节目说明中。请使用该链接。不要只是搜索它们,否则他们不会认为您来自我们这里。然后他们会停止支持该节目。因此,请使用我们的链接 PythonBytes.fm/scout。查看一下。它确实支持该节目。所以记住我谈到了
尝试在 PyPI.org 上提高效率,而不仅仅是,尤其是在 Docker 和容器下,而不仅仅是每次都像这样爆炸式地运行:嘿,我的需求是我的 PyProjects.toml 或任何导致下载 200 个依赖项的结果。并且每次我进行构建或运行 PR 测试时都从头开始,对吧?我最近写了一篇文章。
在我的网站上,讨论了几件不同的事情。如何使用 UV 安装 Python?如何制作,如何设置 pip 和 UV 的缓存以使其更好?我们都说,好吧,GitHub 可能是最……最糟糕的……
所有这些事情。例如,我认为您甚至提到过,如果 GitHub 实际上只是意识到,哦,您正在从 CI 中获取 PyPI 中的东西,那不是很好吗?让我们只给您今天获得的其他 50 万次一样的东西,对吧?因此,所有这些说法仍然是真实有效的,我绝对鼓励人们查看它,因为它……
我觉得我们可以做得更好,而不仅仅是破坏 PyPI 的流量和财务带宽。但是我想提到的一个问题是,一位观众(我认为是 Henry Schreiner,但我不能 100% 确定)指出,有一个名为 setup-uv 的东西。我
我从未听说过它。主要是我不太使用,嗯,嗯,嗯,CI,GitHub CI,这类东西。就个人而言,我不知道。它只是不适合我的生活。这不是我必须做很多事情的要求。所以我只是不太使用 GitHub Actions,但这是一个 GitHub Action。如果您访问该内容,我链接到的存储库,它说,将此 GitHub Action 与您的项目一起使用。点击此处。但其想法是,它将为安装特定版本设置 GitHub Action 工作流,
UV 版本,以及管理它下载的所有内容的缓存。这很酷吗?哦,这非常酷。是的,完全正确。所以它说它将安装 UV 版本并将其添加到您的路径中。谢谢。这很方便。缓存已安装的 UV 版本以加快在自托管运行程序上的连续运行速度。这很好。好的。
它可能会,可选地,将 UV 缓存保留在 GitHub Actions 缓存中。这就是我所说的,您可以让它在您的 CI 第二次运行时说,如果需求仍然相同。两者,这在 PyPI 上都很好,我的意思是,对 PyPI 友好,但也意味着它更快。您没有,如果有一些源代码分发必须进行安装或类似操作。如果它们必须编译,那么其中一些依赖项安装速度很慢,但是一旦它们被缓存,它们的速度就非常快。因此,这将使您的 PR 和所有 CI 运行得更快。我认为这很棒。然后还有一些其他事情
检查,但您可以下来并基本上指定特定版本。您可以将其固定到,那是什么?次要版本,例如 0.3,您可以拥有的任何最新版本,您可以拥有校验和,您甚至可以设置 GitHub Actions 的缓存。这就是我所了解的全部内容,但我认识一些使用 GitHub Actions 的人。我可能能够利用它并运行它。我,我,我与 Rhett,Rhett Turnbull 说,我还没有尝试过 UV,主要是因为
因为我不想处理上传 GitHub Actions,这将非常方便。我一直在使用 UV,但我没有将其添加到我的任何其他 GitHub Action 项目中。是的,我肯定会检查一下。嘿,Rhett,很高兴听到你喜欢它。好的。我最后一个主题是,我又一次想到了那些刚开始学习新事物的人,可能是学生。
正在学习一些 html,并且嗯,特别是嗯,这是很好的,我想强调 htmlforpeople.com,它只是一个在线书籍,我刚注意到,嗯,有一个很棒的图像在前面,桌子上的手机是 404,不错,我
我认为这很有趣。尽管他们应该将其设置为两点钟,以表示 200。好的。我的意思是,你想以积极的姿态开始,但这真的很聪明。我喜欢。但它是一个,它只是一个写得很好的网站,而且,它看起来非常干净,但我浏览了介绍,它确实让我想起了我学习 HTML 的方式。所以我学习 HTML 的时间非常早,在 90 年代。我,
我们没有很多。有一些 HTML 生成器,但是我,我们只是想,我大部分 HTML 都是手工编写的,只是在一个 BI 或类似的东西中,当时可能是 Emacs。无论如何,嗯,
所以这会逐步介绍实际构建网站的过程,例如,它会逐步介绍构建网站、添加内容的过程。嗯,它确实谈到了可能使用更好的文本编辑器。如果您只是使用,嗯,一个,嗯,一个基本的文本编辑器,那么还有更好的编辑器。嗯,谈论样式、添加关于页面、博客、简历,特别是对于大学生来说,做一些不错的事情,嗯,rise。HTML 是一个网站。
甚至还有一些关于它的一些章节,其中包含一些简单的 CSS,它包含在其中,但基本上是自定义课程中包含的 CSS。然后还介绍了一些 CSS 基础知识,因为自从我在 90 年代以来,这并不是什么新鲜事,对吧?
编写 HTML,没有 CSS。但现在,几乎必须学习一些 CSS 以及 HTML。也许您不会编写纯 HTML 网站,但特别是对于静态生成器或模板之类的东西,即使您没有编写原始 HTML 网页,我们仍然会编写很多 HTML。嗯,
因此,学习一个只介绍 HTML 基础知识的教程,我认为这是一个很好的入门方法。是的。我喜欢。这很棒。它向 Kenneth Wright 致敬。虽然我不知道是否有任何联系,但你知道,对于人类来说。我注意到,如果您转到底部,您将拥有用于查找、获取源代码的 GitHub 内容。如果您需要离线内容等等。是的。哦,酷。是的。
这很整洁。它有一个知识共享许可证。哦,有趣。是的。非商业性。署名-非商业性-相同方式共享 4.0 国际许可证。这是我见过的较长的知识共享许可证之一,但非常好。是的。CC BY-NC-SA 4.0。我必须看看那个。我不完全知道那是什么。是的。是的。
无论如何。我喜欢。那是一个好东西。额外内容?额外内容?我没有额外内容。你有额外内容吗?只是几件很快的事情。所以上次,我认为是最近一次,我们谈到了我们必须用其他东西替换 micro-Whiskey,我只是在我的博客上写下了一些想法、一些链接和一些替代方案。因此,人们可以查看它,如果
如果他们感兴趣。这是一个绝妙的主意。我们在本期节目或本播客中讨论的一些内容,我们可以写博客文章。是的,有时我只是想关注某件事,我们这样做是为了放在播客上,但是你知道,并非全世界都会收听。他们应该,但他们没有。真的吗?所以他们可以找到它。我知道,这太奇怪了,Brian。我曾经遇到过一个人,他没有收听该节目。
好的。我知道你还有其他事情,但我想说的是,如果你能成为你所有其他朋友的好朋友,如果你与他们分享这个播客。是的,绝对的。绝对的。好的。因此,如果人们想跟进,可以查看一下。还要向 Carlton Gibson 致敬。
他是 Django Chat 的联合主持人之一,但这不是我向他致敬的原因。我是因为,他为 Django 创建了一个扩展,Django Unique User Email。默认情况下,Django 用户模型,我相信,需要您除了电子邮件之外还需要用户名。并且是用户名是唯一的,而不是电子邮件是唯一的,这有点奇怪。无论如何……
Carlton 修复了它。所以,我修复了它。他通过使 auth.user.email 数据库仍然具有唯一键约束来创建了使用默认用户模型通过电子邮件登录的功能。无论如何,没有什么要补充的,但我认为这感觉应该一直都在那里。所以做得很好。与必需的一样,但当然。当然可以。你知道还有什么需要吗?什么?
一个笑话。是的。让我们开始吧。现在,这是一个你自己的笑话。我没有提前选择,但我发现了一个我预见到将来会在某个时候出现的许多笑话的来源,Brian。好的。我发现 GitHub 上的 practical dev 创建了一个 oh-really 全分辨率……
对于许多 O'Reilly 书籍。你知道这些是什么,对吧?是的,它们就像模拟的,假的 O'Reilly 书籍。完全正确。完全正确。所以让我们看看“忽略弃用警告”那一本。看看它是什么样的。所以……
也许它们会自己消失。这是一只睡猫,上面写着“忽略弃用警告”。不错。你怎么认为?这还不错,对吧?我喜欢。是的。另外我喜欢猫。我确实。猫很好。我会看看我能不能找到,这个怎么样?这个上面写着,这是一只骆驼吗,我认为?它能运行吗?别管它了。
编写其他人无法阅读的代码。权威指南。哦,真的吗?哦,有趣。权威的 Pearl 书籍的封面上有一只骆驼。对。让我们看看。我会找到。哦,这个“大型正则表达式,通过反复试验”怎么样?如果我点击此按钮,它是否会显示完整视图?不。好的。这个是将斜杠和点组合在一起,直到发生某事。好的。
通过反复试验获得专家级正则表达式,一只非常好奇的长颈鹿在角落里窥视,添加斜杠和点,是的,直到发生某些事情为止。好的,这就是我为你准备的,你们都可以四处看看,也许我们将来会再次回来,再找一些好东西,像嗡嗡作响的流行语一样,我的意思是,但是流行语优先开发,时尚前卫的开发,流行语优先设计,我喜欢它,这让我想起了嗯,嗯,嗯
设计,还是简历驱动设计?是的,就是这样。就是这样。就是这样。不错。好的笑话,和你聊得很开心。是的,一如既往,以后再聊。是的。再见。再见大家。