Python—在明显停滞的模块上投入时间值得吗?

Python—在明显停滞的模块上投入时间值得吗?,python,pyglet,Python,Pyglet,为了让它快速和肮脏-我是一个新手程序员,正在努力研究Pyglet,它看起来像是一个非常干净和友好的模块,不像PyGame这样的东西,即使用我自己没有经验的眼睛看,它也是一个野兽 不过。PyGame经常被很多人使用、更新和重用,而且似乎有很多追随者。Pyglet自2010年1月以来一直没有更新过。大多数艺术作品从未完成,只是被遗弃了——但两年后,它仍然在V1.1.4版上,这似乎令人不安 所以,虽然我可能会特别询问Pyglet vs.PyGame,但我也没有,因为这让我想知道,其他可能潜伏在那里的幽

为了让它快速和肮脏-我是一个新手程序员,正在努力研究Pyglet,它看起来像是一个非常干净和友好的模块,不像PyGame这样的东西,即使用我自己没有经验的眼睛看,它也是一个野兽

不过。PyGame经常被很多人使用、更新和重用,而且似乎有很多追随者。Pyglet自2010年1月以来一直没有更新过。大多数艺术作品从未完成,只是被遗弃了——但两年后,它仍然在V1.1.4版上,这似乎令人不安

所以,虽然我可能会特别询问Pyglet vs.PyGame,但我也没有,因为这让我想知道,其他可能潜伏在那里的幽灵模块,它们曾经有过承诺,但由于某种原因,被扔到或推到角落里,并不是真的相关。这些被放弃的项目不值得花时间和脑力投入吗?

作为“休眠”项目的所有者,我个人的看法是:

  • 一个更受欢迎的方案将得到社区更好的支持。对许多人来说,我认为这比任何其他考虑都重要。支持一个平庸的软件包通常比与一个无人使用的令人敬畏的软件包战斗要好
  • 而且它可能很受欢迎,因为它更好。显然,我在这里偏向于弱势群体(见上文),但必须指出的是,如果一个软件包从未获得过很多用户,那么它可能与市场不匹配
但是

  • 如果这个软件包是成熟和有效的,并且它做了你想要的,为什么不使用它呢?特别是当开源意味着您可以自己修复bug时,如果需要,可以进行分叉
所以,这要视情况而定。在所有其他条件相同的情况下,使用流行的选择。如果您需要支持,请使用流行选项。但是如果一个软件包恰好搔痒,它是开源的,在那里,我仍然会考虑它。

重要资格:这是针对个人项目的——在工作中,我有责任使用流行项目,以便其他人能够支持我编写的代码

特定于python的附加条款:另外一件需要担心的事情是python 3的支持。如果一个休眠包在python 2上被卡住了,我会三思而后行,因为长期来看,它很可能会在默认的python安装上停止工作。

是正确的,但我只想提到我一直在使用它,并强烈推荐它作为替代


它有极好的文档,良好的性能,以及一个愿意在论坛和IRC上提供帮助的用户社区。它还在积极开发中,1.8版即将发布。

套用Monty Python的话

不,不,他没有停滞不前,他在休息

开源维护人员继续前进或忙于其他事情。如果您觉得Pyglet是您的应用程序的一个不错的选择,请创建repo的克隆,将您的更改放到
insert code hosting flavor of the month
,并完成一些工作。有一个社区来寻求帮助或修复bug是有好处的


但是,如果某个东西是开源的,并且非常适合您的项目,那么缺少维护人员应该被视为一个机会,而不是一个问题

虽然也许没有Pygame那么活跃,但Pyglet并没有完全停滞不前。查看,您将看到仍然有许多贡献者,并且在撰写本文的前4天提交了几个贡献者

虽然官方发布已经有一段时间了,但这是真的,尽管发布了1.2版本,但显然还没有发生任何事情


公认的答案当然仍然正确,但至少值得一提。

在这种情况下,PyGame和Pyglet是正交的

PyPosil是一个围绕SDL C++库的包装器,它除了3D渲染外,都做游戏相关的事情。()Pyglet是OpenGL的包装器,它只进行3D渲染

因此,PyGame允许您执行诸如捕获控制器输入、从文件中加载纹理以及播放声音之类的操作。然而,图形非常原始,因为它无法利用GPU。Pyglet将允许您在GPU上进行渲染,但不会帮助您处理PyGame处理的任何非性能关键的精细操作


它们非常适合一起使用。

是的,这一点非常恰当,实际上最终让我更倾向于PyGame,因为社区正是我作为新手所需要的。此外,PyGame的另一个教程刚刚发布,它已经给了我很多的洞察力,甚至没有翻到第2页。如果没有这篇文章,你可能不会去寻找它,所以再次感谢你。你好,安德鲁·库克,你是哪个休眠软件包的所有者?我一直在使用PyGame,对它很满意,但刚刚了解Pyglet,对它很感兴趣。特别是它的多窗口支持。这充其量只是误导。谈到图形,pyglet与OpenGL紧密结合,但它不仅仅是OpenGL的包装器。您可以捕获鼠标和键盘输入(
pyglet.window.window
事件),从文件加载纹理(
pyglet.image.load
),并使用pyglet播放声音(
pyglet.media
),而无需使用Pygame。您也可以在pyglet中进行2D操作。