Python 周报,提供有价值的 Python 及行业相关信息。

如果你发现了有价值的信息、文章和工具等,可以到 Issues 里提给我,记得写上推荐的理由。也欢迎提出意见和建议。

:newspaper_roll: 新闻

CUDA宣布支持 Windows Linux 子系统

为了响应大众的需求,Microsoft 在2020年5月的 Build 大会上宣布了Windows Linux 子系统2(WSL 2)的新功能──GPU加速。此功能为当前许多计算应用程序,专业工具和工作负载打开了大门,这些当前仅在 Linux 上可用,但现在可以在 Windows 上直接运行,并受益于 GPU 加速。

最重要的是,NVIDIA CUDA 加速现已应用于 WSL。在本文中,我们将在 WSL 2的“公共预览”中讨论对CUDA的期望。

Spark 发布 3.0.0 版

Apache Spark 3.0.0 是 3.x 系列的第一个发布版。投票于2020年6月10日获得通过。此发行版基于 git tag v3.0.0,其中包括截至6月10日的所有提交。Apache Spark 3.0 建立在 Spark 2.x 的许多创新之上,也带来了新的想法。作为已经开发的持续长期项目,在开源社区的巨大贡献的帮助下,由于440多位贡献者的贡献,此发行版解决了3400多个问题。

今年是 Spark 作为开源项目成立10周年。自2010年首次发布以来,Spark 已经发展成为最活跃的开源项目之一。如今,Spark 实际上是用于大数据处理,数据科学,机器学习和数据分析工作负载的统一引擎。

以下是 Spark 3.0 中的功能亮点:自适应查询执行;动态分区修剪;符合ANSI SQL;pandas API的重大改进;用于结构化流的新UI;调用 R 用户定义函数的速度提高了40倍;加速器感知调度器;和 SQL 参考文档。

:pencil: 文章和教程

让 Python 整数可迭代

Python 中的 Iterable 是对象和容器,通常可以使用 for ... in 循环一步一步地访问每一项。并非所有对象都可以迭代,例如──我们不能迭代整数,它是一个单值。我们在此可以做的最好的事情是使用 range 类型对整数范围进行迭代,这有助于我们对 [0,n) 范围内的所有整数进行迭代。

由于整数是不可迭代的,因此当我们尝试 for x in 7 时,它将引发异常,指出 TypeError: 'int' object is not iterable。那么,如果我们更改 Python 的源代码并使整数可迭代,该怎么办呢?每次 for x in 7 时,不是引发异常,它实际上会迭代 [0,7) 内的值。 在本文中,我们将详细讨论这一点,整个过程为:

  • 什么是 Python 迭代?
  • 什么是迭代器协议?
  • 更改 Python 的源代码并使整数可迭代,以及
  • 为什么这样做可能不是一个好主意?

Python 关键字

每种编程语言都有特殊的保留字或关键字,这些特殊的保留字或关键字对应如何使用具有特定的含义和限制,Python 也不例外。Python 关键字是任何 Python 程序的基本构建块。在本文中,你将找到所有Python关键字的基本介绍,以及其他有助于进一步了解每个关键字的资源。在本文结束时,你将能够:

  • 识别 Python 关键字
  • 了解每个关键字的用途
  • 使用关键字模块以编程方式使用关键字

在 Python 中实现代理模式

在 Python 中,有一种说法是设计模式是反模式。同样,在动态语言领域中,设计模式还具有向核心逻辑注入附加抽象层并使流程不必要地模糊的恶名。Python 的动态特性以及将函数视为一等对象的做法通常会使 Java 式的设计模式变得多余。你几乎可以始终利用 Python 的一等对象,鸭子类型,猴子补丁等优势来完成手头的任务,而不必使用看似过度设计的模式来乱码。但是,最近有一种设计模式,我发现自己一遍又一遍地使用它来编写更具可维护性的代码,这就是代理模式。所以我想在这里记录下来以备将来参考。

我对 black 代码格式化器的不满

在这篇文章中,我将尝试收集关于自动代码格式化以及为什么我个人不喜欢这种方法的所有想法。我们将选择最时髦的工具──Black。

数据工程师对 Go 与 Python 的观点(第1部分)

探索 golang──我们可以放弃 Python 吗?而且我们是否(如“经常处理大量数据的人们”那样)最终找到了 go 的用例?第1部分探索了 Python 和 go 之间的高级差异,并给出了这两种语言的具体示例,旨在回答基于 Apache Beam 和 Google Dataflow 的实际示例。

尝试 Ansible 的 Python 替代品

我的 VPS(虚拟专用服务器)越来越老,运行它的公司宣布下个月,我使用的促销活动将到期,现在运行它的成本将超过三倍。另外,我想更新我家里的其他计算机,因为它们使用旧的Ubuntu。这导致我寻求某种类型的部署自动化,因此我可以将基础结构指定为代码,理想情况下再也不会花太多时间在它上面。

为什么不用 Ansible?

我不喜欢基于 YAML 的配置语言过度使用脚本语言。这是 Greenspun 第十条规则的经典示例:

任何足够复杂的 C 或 Fortran 程序都包含一个临时的,非正式指定的,bug丰富的,缓慢实现的 Common Lisp 一半。

每次我尝试使用 Ansible 时都会感到一团糟,这促使我去探索替代品,最好是在 python 中定义“配方”或任何简单的 python 代码的替代品。

在 Python 中调试内存不足崩溃

你运行程序崩溃了,它的内存不足:

  • 如果幸运的话,你会收到 MemoryError 异常。
  • 如果不那么幸运,你会获得一个 core dump。
  • 如果天气不好,你的计算机将锁定并且需要重新启动。
  • 你如何找出用完所有内存的 Python 程序了?

一种实现方法是使用 Fil 内存分析器,该工具专门(尽管在实验上)支持调试内存不足崩溃。但是,在了解它如何工作之前,让我们考虑一下为什么内存不足的情况如此痛苦。

在本指南中我们将学习 HTTP cookie,并使用 JavaScript 和 Python 编写实用示例,并提供有用的资源。

Docker 网络完整指南

容器需要彼此之间以及与外界的通信。Docker 具有广泛的网络功能。我们可以用docker网络做什么?我们如何使用它?

:books: 书籍

算法(第一版)── Jeff Erickson

该网页包含作者自己出版的教科书《算法》的免费电子版,以及自1998年以来他为伊利诺伊大学香槟分校的各种理论计算机科学课编写的其他讲义。

:coffee: 关注我们

RSS 订阅:PythonWeekly RSS