Python 社区采访 Will McGugan

2023-10-10

今天我加入了威尔·麦古根。 Will 是一位来自苏格兰的自由 Python 开发人员,也是流行 Python 库的创建者富有的.

在这次采访中,我们讨论了Rich、维护一个流行的 Python 包、构建国际象棋引擎以及 Will 对摄影的热爱是什么感觉。

瑞奇: 感谢您接受我的采访,威尔。我想以与所有客人相同的方式开始:您是如何开始编程的,以及您什么时候开始使用 Python 的?

Headshot of Will McGugan

将要:谢谢你邀请我参加!

我在 80 年代还是个孩子的时候就发现了编程。对于年轻读者来说,这就像怪奇物语,减去CGI怪物。当时我们有一台 ZX Spectrum+ 计算机。图形闪烁,声音微弱,但我被迷住了。在某些时候,我发现你可以在键盘上输入内容,并且如果你做得正确的话,计算机就会按照你的指示去做。

快进几年,我在视频游戏行业工作。我正在构建一个游戏引擎并寻找一种脚本语言来处理游戏机制,而 C++ 则负责图形和繁重的工作。我想就在那时我遇到了 Python 2.1 版本。

当时我并不认为它是一种合适的编程语言,可能是因为它太容易使用了,而编程应该很难吧?即便如此,我发现自己又回到了 Python 的脚本和工具,它们逐渐变得更加复杂。

当我找到一份为 Python 工作的工作时,我在 Python 上的“重大突破”就发生了。网络象棋俱乐部。他们正在寻找 Python 开发人员来构建新的国际象棋界面。幸运的是,我已经编写了一个国际象棋游戏,并且渴望更好地利用我的 Python 技能。从那时起,Python 就成为了我职业生涯的主要焦点,并且我再也没有回头。

瑞奇: 过去十年来,您一直是一名 Python 自由开发人员。过去十年来,Python 自由职业领域发生了怎样的变化?它是否随着 Python 的流行而增长?

将要:我的经验是在家工作的自由职业者。如今这很常见,但当我开始时,大多数人都感到非常惊讶。如果您是一位经验丰富的开发人员,您可能不会需要不再在办公室工作。

Python现在是主流。大型科技公司采用了 Python,它从人们用来提高生产力的第二语言变成了一种受欢迎的技能。我很幸运有一份长期合同,但现在似乎并不缺少合同工作。

瑞奇: 人们可能知道您是Rich,日益流行的用于格式化终端输出的库。是什么促使您创建该库,以及它的日益流行(每月下载量超过 619,000 次)如何影响了Rich?

将要: 富有的酝酿了很长时间! 2015 年的某个时候,我正在研究莫亚,一个网络应用程序平台,也是我当时的副业项目。Moya有一个命令行应用程序可以生成精美的终端输出。

我在那里实现的控制台类结果是一个原型版本Rich。这个控制台类并没有经过深思熟虑——更像是任何与终端相关的东西的垃圾场——但其中有一些好主意。

当我停止工作后Moya,我打算重新制作这个 uberconsole,以便它可以在其他项目中使用。每次我努力在终端中读取一些格式不正确的输出时,我都希望它已经存在。

2019 年接近尾声的时候,我开始了这方面的工作。首先出现的是富文本,这就是名称的由来。我有一个类可以以与 HTML 类似的方式用颜色和样式标记文本范围。后来出现的许多其他功能都是基于这个核心功能构建的。我用它来实现语法高亮、表格、Markdown 等。

什么时候Rich开始流行,最明显的变化是我大部分时间收到的错误和功能请求的数量。我意识到Rich不再是我的玩物。人们在日常工作中、开发人员与客户、老板以及截止日期中使用它。我有责任及时修复错误并实现人们要求的功能。老实说,它开始感觉不再是一个晚上进行的有趣项目,而更像是一份工作。

这其中有某种失落感。

让我坚持下去的是积极的反馈。不少网友表示找到了fun跟...共事。我很高兴我坚持了下来,因为我喜欢看到人们使用创造性的方式Rich在他们的命令行应用程序中。

瑞奇: 您最近添加了终端仪表板Rich,就像htop一样,只是更好看!这是人们所要求的功能吗?您在实施过程中面临哪些技术挑战?

将要:当我读到一条关于的推文时,终端仪表板功能就出现了盖顶。这是一个由纳特·弗里德曼GitHub 的首席执行官。哈梅尔·侯赛因和杰里米·霍华德使用Rich美化输出ghtop,看起来很棒!看到这里,我意识到Rich这类接口有很大的潜力。

为了使这些类似 htop 的界面更容易实现,我添加了一个布局类,它可以将终端屏幕细分为多个部分,每个部分都有自己的内容。

唯一真正的技术障碍是Rich不知道高度是一个维度。输出输入Rich可以有一个宽度,但假设它可以根据需要写入尽可能多的行,因为用户可以向上滚动查看它。在全屏显示中,您无法滚动,因此我必须将内容限制在固定高度。幸运的是,这并不是什么大的变化。

瑞奇: 人们如何开始使用Rich,如果他们已经在使用它,他们如何帮助该项目继续取得成功?

将要: Rich非常容易上手。一条单线,from rich import print,可以替代内置print()与一个print拥有超能力。您可以免费获得自动换行、语法突出显示和漂亮的打印功能。打印表格、面板和 Markdown 等内容并不需要太多工作。详细信息在自述文件文档,再加上大量的GitHub 中的示例存储库。

我目前正在尝试GitHub 赞助商作为保持势头的一种方式Rich。每月前 200 英镑将捐赠给肠癌慈善机构。有很多非财务方式可以帮助该项目。错误报告和功能建议始终受到欢迎。

我也很欣赏自述文件的翻译,到目前为止它有五种语言(包括英语)。如果自述文件不是您的母语,请考虑提交带有翻译的 PR!

瑞奇: 现在只有最后几个问题。空闲时间你还做什么?除了Python和编程之外,您还有哪些爱好和兴趣?

将要:在大流行之前,我非常喜欢野生动物摄影。我很幸运能够在自然栖息地拍摄熊、科莫多巨蜥和猩猩等神奇动物。当世界恢复正常时,我想做更多这样的事情。

如今,我的兴趣离家更近了。我喜欢烹饪,主要是我在 YouTube 上看到的食谱。最近,我一直在努力掌握经典的意大利面食菜肴。

瑞奇: 谢谢你,威尔,加入我。祝你好运Rich及其持续发展。


如果您想就我们今天谈论的任何事情与威尔联系,那么您可以通过以下方式联系他:推特。您可能还想开始与丰富.

如果您希望我采访 Python 社区中的某个人,请在下面发表评论或通过以下方式与我联系推特。快乐编码!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 社区采访 Will McGugan 的相关文章

  • VS2015 community评估期已结束

    今天打开VS2015 community忽然弹出框提示VS2015 community评估期已结束 xff0c 请登录已结束锁定 第一反应是需要秘钥 xff0c 发现咦 这个软件不太一样不需要秘钥 xff0c 只需要登录就可以使用 那这就简
  • IntelliJ IDEA 2022.3.2 (Community Edition)中应用kotlin的android扩展

    前几天 xff0c 突然想试试在android上如何启用一个app xff0c 于是经过选择 xff0c 选择了kotlin语言来实现 网上说要先安装intellij idea的环境 xff0c 安装好后 xff0c 按照helloworl
  • https://gns3.com/community/discussion/gns3-doesn-t-work-on-vmware-play

    swered Question GNS3 doesn t work on VMWARE player 15 Hi guys today I try to install GNS3 on new VMWARE player 15 with V
  • 从源安装mysql_使用MySQL community 源安装MySQL

    使用MySQL community 源安装MySQL 添加MySQL Yum源 安装MySQL sudo rpm Uvh mysql57 community release el6 n noarch rpm yum localinstall
  • 今日解决新安装的centos 8安装MYSQL提示未找到匹配的参数: mysql-community-server

    今日新安装的centos在安装mysql community server时一直报错 xff1a root 64 centos8 yum repos d yum y install mysql community server 上次元数据过
  • Centos7上安装MySQL community步骤

    下载mysql80 community release el7 3 noarch rpm软件源包文件 MySQL Community Yum Repository Downloads shell gt sudo yum localinsta
  • MxNet系列——community——contribute

    博客新址 http blog xuezhisd top 邮箱 xff1a xuezhisd 64 126 com 对MXNet做贡献 MXNet是由一群活跃的社区成员开发和使用的 请对其贡献 xff0c 以改善它 当你的补丁被合并时 xff
  • MxNet系列——community——index

    博客新址 http blog xuezhisd top 邮箱 xff1a xuezhisd 64 126 com MXNet 社区 有关使用MXNet的问题 如果你在做某事时 xff0c 不确定如何使用MXNet xff1b 或者将其应用到
  • Ubuntu 18.04 install docker-ce(community)

    Ubuntu 18 04 install docker ce community 1 Older versions of Docker were called docker docker io or docker engine If the
  • 通过真正的 Python Slack 社区提升您的技能

    目录 享受生活 保持好奇心 提出问题并尊重他人 找到提问的最佳渠道 Spend Some Time Composing Your Questions 总结您的问题 为您的问题提供背景信息 提供一个最小的可重复示例 提供追溯 请勿交叉发帖 尝
  • PyCon Africa 2019(回顾)

    目录 PyCon Africa 发生了什么 主会议 穆斯塔法 西塞 人工智能产生积极影响的潜力 Meili Triantafyllidi 在柏林 PyLadies 工作 6 年的经验教训 Candy Tricia Khohliwe 网络虚拟
  • Python 新闻:2023 年 3 月以来的新增内容

    目录 Python 3 12 0 Alpha 6 发布 Python 本地包目录上的 PEP 582 被拒绝 PyCascades 2023 在不列颠哥伦比亚省温哥华举行 PyCon US 2023 招募志愿者 PyPI 发布博客 2022
  • Python 社区采访 Will McGugan

    今天我加入了威尔 麦古根 Will 是一位来自苏格兰的自由 Python 开发人员 也是流行 Python 库的创建者富有的 在这次采访中 我们讨论了Rich 维护一个流行的 Python 包 构建国际象棋引擎以及 Will 对摄影的热爱是
  • Python 社区采访迈克尔·肯尼迪

    本周 我们的 Python 社区采访对象正是迈克尔 肯尼迪的跟我聊Python名声 你可能听过他权威的声音 但你知道他的Python故事吗 请继续阅读 了解他使用 Python 的旅程 他遇到交通堵塞时的想法以及他对两个轮子的热爱 瑞奇 欢
  • Python 新闻:2021 年 12 月以来的新增内容

    目录 Python 指导委员会选举 Python 新版本 Python 3 6 生命周期结束 代码的出现 Python 的下一步是什么 In 2021 年 12 月 第四个Python指导委员会像往常一样 由新成员和回归成员组成 Pytho
  • Python 新闻:2021 年 6 月以来的新增内容

    目录 埃瓦 乔德洛斯卡 Ewa Jodlowska 辞去 PSF 执行董事职务 PSF 公布董事会选举结果 爵士乐队接受 PSF 财政赞助计划 微软正在招聘人员来帮助加快 Python 速度 PyCon US 2021 视频录制现已推出 P
  • Python 新闻:2021 年 5 月以来的新增内容

    目录 微软成为 PSF 第三位远见赞助商 Pallets Releases New Major Versions of All Core Projects Flask 获得原生 asyncio 支持 Jinja 改进了异步环境 Click
  • Python 社区采访 Eric Wastl

    本周 我们加入了埃里克 瓦斯特 高级架构师TCGP播放器和创始人代码的出现 AoC 请加入我们 讨论 AoC 的起源 在解决 AoC 中的代码挑战时如何避免常见陷阱 以及 Eric 在每年的 3 8 秒 空闲时间中所做的事情 如果您在阅读本
  • 视频字幕和脚本现在可在 Real Python 上使用

    嘿 今天我有一个重大更新要分享 真正的 Python 视频课程现在有完整的字幕和成绩单 我认为这对于可访问性有很大帮助 并使您最喜欢的 Python 学习资源更易于查看和搜索 让我们做一个快速演示 现在附带视频课程完整字幕您可以在方便时打开
  • 最好的 Python 书籍

    目录 Best Books for Learning Python Python 速成课程 Head First Python 第二版 用 Python 发明你自己的电脑游戏 第四版 思考 Python 如何像计算机科学家一样思考 第二版

随机推荐

  • 第 2 节审查

    该视频总结了有关装饰器的第 2 部分 您现在知道如何 创建简单的装饰器并将它们应用到函数中 通过使用应用语法糖 装饰你的功能的符号 重用装饰器并将它们导入到您的程序中 用参数修饰函数 从修饰函数返回值 对Python对象进行内省以及如何使用
  • 通过真正的 Python Slack 社区提升您的技能

    目录 享受生活 保持好奇心 提出问题并尊重他人 找到提问的最佳渠道 Spend Some Time Composing Your Questions 总结您的问题 为您的问题提供背景信息 提供一个最小的可重复示例 提供追溯 请勿交叉发帖 尝
  • 处理时区

    Python 3 9 在时区方面引入了重大变化 添加了zoneinfo数据库 在本课程中 您将学习如何使用ZoneInfo类将时区信息添加到datetime目的 您还将探索不一致的命名标准造成的复杂性 如果您想了解有关圣诞岛 基里蒂马蒂示例
  • PyCon Africa 2019(回顾)

    目录 PyCon Africa 发生了什么 主会议 穆斯塔法 西塞 人工智能产生积极影响的潜力 Meili Triantafyllidi 在柏林 PyLadies 工作 6 年的经验教训 Candy Tricia Khohliwe 网络虚拟
  • 第 142 集:使用 Apache Airflow 协调大型和小型项目

    第 142 集 使用 Apache Airflow 协调大型和小型项目 真正的 Python 播客 2023 年 1 月 27 日54m RSS Apple Podcasts Google Podcasts Spotify More 播客瘾
  • Python 新闻:2023 年 3 月以来的新增内容

    目录 Python 3 12 0 Alpha 6 发布 Python 本地包目录上的 PEP 582 被拒绝 PyCascades 2023 在不列颠哥伦比亚省温哥华举行 PyCon US 2023 招募志愿者 PyPI 发布博客 2022
  • 使用Python或运算符

    Python 中有 3 个布尔运算符 and or 和not 使用它们 您可以测试条件并决定程序将采用哪个执行路径 在本教程中 您将深入了解 Pythonor运算符及其使用方法 在本课程结束时 您将学到 Python 如何or操作员工作 如
  • Python F 字符串:讨厌的细节

    您已经了解了很多有关 F 弦的知识以及它们为何如此出色 在本课程中 您将了解在使用以下内部 f 字符串时要记住哪些细节 引号 词典 牙套 反斜杠
  • Python mmap:使用内存映射进行文件 I/O

    这Python之禅有很多智慧可以提供 一个特别有用的想法是 应该有一种 最好只有一种 明显的方法来做到这一点 然而 在 Python 中完成大多数事情有多种方法 而且通常都有充分的理由 例如 有Python 读取文件的多种方法 包括很少使用
  • Python 图形用户界面编程

    Python 图形用户界面编程 学习路径 技能 图形用户界面 GUI Python支持多种GUI框架或工具包 从传统上与 Python 捆绑在一起的 Tkinter 到许多跨平台解决方案 例如 PyQT 或 wxPython 您可以将其作为
  • 第 78 集:通过图解故事学习 Python

    第 78 集 通过图解故事学习 Python 真正的 Python 播客 2021 年 9 月 17 日48m RSS Apple Podcasts Google Podcasts Spotify More 播客瘾君子 灰蒙蒙 袖珍铸件 投
  • Django 测试(第 1 部分)——最佳实践和示例

    目录 Intro to Testing in Django 测试类型 最佳实践 结构 第三方包 Examples 设置 测试模型 测试视图 测试表格 测试 API 下次 测试至关重要 如果没有正确测试您的代码 您将永远不会知道代码现在或将来
  • Python 3.11 预览:TOML 和 tomllib

    目录 Python 3 11 Beta 很酷的新功能 安装 tomllib TOML Parser in Python 3 11 学习基本 TOML 使用 tomllib 读取 TOML 写入TOML Other New Features
  • Python 包版本控制最佳实践

    如果您添加新功能或添加重大更改 您需要更改软件包的版本 在本课程中 您将了解语义版本控制以及如何在项目中使用它 笔记 如果您想了解有关语义版本控制的更多信息 请务必查看semver org
  • 2021 年 7 月 21 日

    本周我们有一位特别嘉宾联合主持人 Real Python 自己的巴托什 扎钦斯基 David 和 Bartosz 联手回答会员的问题 在这次会议上 我们讨论了 Python 新闻和更新 什么是 REST API 有哪些学习它们的好资源 什么
  • 字符串索引

    弦乐是字符数据的有序序列 索引允许您使用数值直接访问字符串中的各个字符 字符串索引是零基础 字符串中第一个字符的索引为 0 下一个字符为 1 依此类推 在本课程中 您将学习字符串索引语法并通过几个示例进行练习 gt gt gt gt gt
  • 更精确的类型

    在本课中 您将了解Python 3 8 中更精确的类型 Python 的类型系统目前已经相当成熟 然而 在 Python 3 8 中 输入中添加了一些新功能 以允许更精确的输入 文字类型 类型化词典 最终对象 协议 Python支持可选类型
  • 第 145 集:使用 Nox 创建 Python Wordle 克隆并测试环境

    第 145 集 使用 Nox 创建 Python Wordle 克隆并测试环境 真正的 Python 播客 2023 年 2 月 17 日59m RSS Apple Podcasts Google Podcasts Spotify More
  • 鳞片层

    有关本课程所涵盖概念的更多信息 您可以查看以下资源 图九 数据 经济学 绘图文件 秤 API 参考 绘图文件
  • Python 社区采访 Will McGugan

    今天我加入了威尔 麦古根 Will 是一位来自苏格兰的自由 Python 开发人员 也是流行 Python 库的创建者富有的 在这次采访中 我们讨论了Rich 维护一个流行的 Python 包 构建国际象棋引擎以及 Will 对摄影的热爱是