问题标签 [python-stackless]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
20500 浏览

python - Python彗星服务器

我正在构建一个 Web 应用程序,该应用程序具有我想通过长轮询机制更新的实时提要(类似于 Facebook 的新闻提要)。我知道对于 Python,我的选择几乎是使用 Stackless(从他们的 Comet wsgi 示例构建)或 Cometd + Twisted。不幸的是,关于这些选项的文档很少,我在网上找不到关于 Python 上的彗星生产规模用户的良好信息。

有没有人在生产系统中成功地在 Python 上实现了彗星?你是怎么做的,我在哪里可以找到资源来实现我自己的?

0 投票
7 回答
26832 浏览

python - 在 Linux 上使用任务集的多核系统上的 Python 全局解释器锁定 (GIL) 解决方法?

所以我刚刚看完了关于 Python Global Interpreter Lock (GIL) http://blip.tv/file/2232410的演讲。

它的要点是 GIL 对于单核系统来说是一个非常好的设计(Python 基本上将线程处理/调度留给了操作系统)。但这在多核系统上可能会严重适得其反,最终导致 IO 密集型线程被 CPU 密集型线程严重阻塞、上下文切换的代价、ctrl-C 问题 [*] 等等。

因此,由于 GIL 限制我们基本上只能在一个 CPU 上执行 Python 程序,我的想法是为什么不接受这一点并简单地使用 Linux 上的任务集来将程序的亲和性设置为系统上的某个核心/cpu(尤其是在在多核系统上运行多个 Python 应用程序)?

所以最终我的问题是:有没有人尝试过在 Linux 上使用带有 Python 应用程序的任务集(尤其是在 Linux 系统上运行多个应用程序时,以便可以将多个内核与绑定到特定内核的一个或两个 Python 应用程序一起使用),如果是这样的话结果是什么?值得吗?对于某些工作负载,它会使情况变得更糟吗?我计划这样做并对其进行测试(基本上是看看程序是否需要更多或更少的时间来运行),但我很想听听其他人的经验。

补充:David Beazley(在链接视频中发表演讲的人)指出,一些 C/C++ 扩展手动释放 GIL 锁,如果这些扩展针对多核(即科学或数字数据分析等)进行了优化,那么而不是获得多核的好处来处理数字,扩展将被有效地削弱,因为它仅限于单核(因此可能会显着减慢您的程序速度)。另一方面,如果您不使用这样的扩展

我不使用多处理模块的原因是(在这种情况下)程序的一部分是严重的网络 I/O 绑定(HTTP 请求),因此拥有一个工作线程池是一种很好的方式来提高性能,因为一个线程触发一个 HTTP 请求,然后因为它在等待 I/O 放弃了 GIL,另一个线程可以做到这一点,所以程序的一部分可以轻松运行 100 多个线程而不会对 CPU 造成太大伤害,让我实际使用可用的网络带宽。至于无堆栈 Python/etc,我对重写程序或替换我的 Python 堆栈并不太感兴趣(可用性也是一个问题)。

[*] 只有主线程可以接收信号,所以如果你发送一个 ctrl-C,Python 解释器基本上会尝试让主线程运行以便它可以处理信号,但是因为它不直接控制运行哪个线程(这留给操作系统)它基本上告诉操作系统继续切换线程,直到它最终到达主线程(如果你不走运可能需要一段时间)。

0 投票
7 回答
64223 浏览

python - Python中的线程

在 Python 中用于编写多线程应用程序的模块有哪些?我知道该语言以及Stackless Python提供的基本并发机制,但是它们各自的优缺点是什么?

0 投票
3 回答
982 浏览

python - 请解释套接字缓冲区

我试图找到有关套接字编程的示例并遇到了这个脚本: http ://stacklessexamples.googlecode.com/svn/trunk/examples/networking/mud.py

阅读此脚本时,我发现了这一行:listenSocket.listen(5)

据我了解-它从缓冲区中读取 5 个字节,然后对其进行处理...

但是如果另一端发送了超过 5 个字节会发生什么?

在该脚本的另一个地方,它会根据 4 个命令检查输入,并查看字符串中是否有 \r\n。不要像“look”这样的命令加上 \r\n 组成超过 5 个字节?

艾伦

0 投票
1 回答
670 浏览

python - Stackless python 停止了 mod_python/apache 的工作

在阅读了几个说它与 vanilla python 完全兼容的网站后,我安装了 stackless pyton 2.6.2。安装后我发现我的 django 应用程序不再工作了。

我确实再次重新安装了 django (1.1),现在我有点迷路了。我得到的错误是 500:

内部服务器错误

服务器遇到内部错误或配置错误,无法完成您的请求。

请联系服务器管理员 webmaster@localhost 并告知他们错误发生的时间,以及您所做的任何可能导致错误的事情。

服务器错误日志中可能提供有关此错误的更多信息。Apache/2.2.11 (Ubuntu) DAV/2 PHP/5.2.6-3ubuntu4.1 with Suhosin-Patch mod_python/3.3.1 Python/2.6.2 mod_ruby/1.2.6 Ruby/1.8.7(2008-08-11 ) mod_ssl/2.2.11 OpenSSL/0.9.8g 服务器在 127.0.0.1 端口 80

还有什么,我可以或应该做什么?

编辑:从第 1 条评论中,我了解到问题不在 django 中,而是在 mod_python 和 apache 中?所以我编辑了我的问题标题。

Edit2:我认为某些路径设置有问题。我尝试从 mod_python 到 mod_wsgi,最终设法正确设置它只是为了得到下一个错误:[Sun Aug 16 12:38:22 2009] [error] [client 127.0.0.1] raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e) [Sun Aug 16 12:38:22 2009] [error] [client 127.0.0.1] ImproperlyConfigured:加载 MySQLdb 模块时出错:没有名为 MySQLdb 的模块

艾伦

0 投票
2 回答
1185 浏览

c# - Mono Tasklet/Co-Routines 的开销

新的 Mono Continuations/Tasklet 框架的主要性能开销(gc/堆栈复制...)是什么?

与 Lua Coroutine 和 stackless python 等其他框架相比,这种开销(协程性能/原始性能)如何?

在 Mono 2.6 中将添加对延续/协程的支持。我构建了一个svn版本并使用以下代码来估计它的开销

微线程/调度程序运行大约需要 1.5-2 秒,而原始循环几乎是瞬间完成的。虽然预计会有开销,但这似乎有点多。

新的 Mono Continuations/Tasklet 框架的主要性能开销是什么?与 Lua Coroutine 和 stackless python 等其他框架相比,这种开销(协程性能/原始性能)如何?

谢谢

0 投票
1 回答
2776 浏览

python - Django ImageField 验证和 PIL

周日,当我安装无堆栈 python 时,我遇到了 python 模块的问题。现在我已经编译并安装了:

setuptools & python-mysqldb 我让我的 django 项目重新启动并运行。(我还重新安装了 django-1.1),

然后我编译安装了jpeg、freetype2和PIL。我也开始使用 mod_wsgi 而不是 mod_python。

但是当以表单上传图像字段时,我得到验证错误:

上传有效图片。您上传的文件不是图像或损坏的图像。

Searchmonkey 显示它来自 field.py imagefield 验证。在引发此错误之前,它会从 PIL 导入图像,打开文件并对其进行验证。我尝试手动从 python 提示符导入 PIL - 它工作得很好。与 Image.open 和 Image.verify 相同。那么可能是什么导致了这个问题呢?

艾伦

0 投票
5 回答
22031 浏览

python - 实时操作系统 (RTOS) 上的 Python

我计划在 RTOS 平台上实现一个小型数据采集系统。(在 QNX 或 RT-Linux 系统上。)

据我所知,这些工作是使用 C/C++ 执行的,以充分利用系统。然而,我很想知道并想了解一些有经验的人的意见,然后我盲目地投入到编码行动中,用 Python 编写所有东西是否可行和更明智(从低级仪器接口到闪亮的图形用户界面)。如果不是,则将设计的时间关键部分与“C”混合,或者用 C 编写所有内容,甚至不放置一行 Python 代码。

或者至少使用 Python 包装 C 代码以提供对系统的更轻松访问。

你会建议我以哪种方式工作?如果您指出一些类似的设计案例和进一步的阅读材料,我会很高兴。

谢谢

注 1:之所以强调 QNX,是因为我们已经有一个基于 QNX 4.25 的数据采集系统 ( M300 ) 用于我们的大气测量实验。这是一个专有系统,我们无法访问它的内部。进一步了解 QNX 可能对我们有利,因为 6.4 具有免费的学术许可选项,附带 Python 2.5 和最近的 GCC 版本。我从未测试过 RT-Linux 系统,不知道它在稳定性和效率方面与 QNX 相比如何,但我知道 Python 栖息地和非 Python 工具(如 Google Earth)的所有成员都认为新系统大部分时间都可以在开箱即用的作品上开发。

0 投票
3 回答
796 浏览

python - 为超大型游戏世界设计存储

我又开始了游戏编程。10年前我在qbasic做游戏,从那以后我就没有做过任何游戏编程,所以我很生疏。不过,我一直在编程,现在我是 Web 开发人员/DBA/管理员。我有几个问题,但我将限制为每个帖子一个。

我正在开发的游戏将是一个非常大的世界。它将有点像URW,但更大的世界,更像是一个“RPG”。

我一直在尝试决定的是,布局地图、保存和访问它的最佳方式是什么。我想到了使用 sqlite 来存储数据的想法。然后我什至可以使用 sqlite db 作为游戏的保存文件,既简单又方便。

有人对我应该如何处理这个问题或其他存储方法有任何建议吗?

以下是我的游戏的要求:

  • 我需要完全随机访问游戏世界中的位置(NPC、怪物、动物都将一直处于活动状态)。
  • 我正在使用 Stackless Python 3.1,除非我做很多工作,否则选项非常有限。
  • 需要能够处理一个非常大的世界。
  • 并发支持将是一个加号,但我认为我不需要它。
0 投票
2 回答
1677 浏览

python - 无堆栈 Python 和 PyQt

你对 Stackless Python 和 PyQt 有什么经验?

如果人们解决以下问题,我会很高兴:

  1. 为 Stackless 编译 PyQt:是否需要专门为 Stackless 编译 PyQt?编译顺利吗?绑定等问题

  2. 稳定性:是否有任何意外的崩溃、冻结、暂停和其他异常情况?

  3. 内存管理:内存泄漏的任何提示。Stackless/Plain Vanilla PyQt 应用程序所需的 RAM 比较

  4. 软件工程授权:Stackless-powered PyQt 应用程序的控制流模型的简短概述

  5. 经验教训:任何痛苦的教训,要避免的陷阱,要解决的问题,你可能遇到过

要开心