python - Python 2.5 上选择模块的问题

标签 python macos beanstalkd

我有一个 Python 2.5 应用程序,它监听 beanstalk 队列。到目前为止,它在我测试过的所有机器上都运行良好,除了我新买的 MacBook Pro。

在那台计算机上,当我尝试运行它时出现此错误:

Traceback (most recent call last):
  File "jobs.py", line 181, in <module>
    Jobs().start()
  File "jobs.py", line 154, in start
    self.jobQueue = Queue()
  File "src/utils/queue.py", line 16, in __init__
    self.connection = serverconn.ServerConn(self.server, self.port)
  File "src/beanstalk/serverconn.py", line 25, in __init__
    self.poller = select.poll()
AttributeError: 'module' object has no attribute 'poll'

serverconn.py 具有以下导入:

import socket, select

当我尝试从命令行运行它时,它也失败了:

Python 2.5.1 (r251:54863, Jul 23 2008, 11:00:16) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import select
>>> select.poll()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'poll'

您知道会发生什么吗?

PS:尽管我非常有信心这不是源问题,但如果您需要有关失败源的一些背景信息,可以在 [ http://pastie.org/399342](this 找到它。馅饼)。

更新: 因为我得到的第一个答案推测 select.poll() 是否在 Mac OS 上受支持,但我也有一台 iMac 并且具有完全相同的操作系统版本并且它工作正常:

2009-02-25 00:27:10,067 - Queue - DEBUG - Connecting to BeansTalk daemon @ localhost:11300

最佳答案

根据 this macports ticket Apple 的 poll() 实现被直接破坏了。 Apple 通过禁用 Python 中的 poll() 解决了这个问题,而 macports 现在也在他们的 Python 中禁用了 poll 。我认为这意味着您需要查看 Python 的 select.kevent() 而不是 mac 上的轮询。

关于python - Python 2.5 上选择模块的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/584575/

相关文章:

macos - 仅桶装 Homebrew 配方

php - Beanstalkd 如何管理内存?

message-queue - 消息队列与通过 CRON 的数据库表队列

python - 搪瓷 slider 箭头键不起作用

python - Selenium webdriver python 从网站查找动态文本

macos - curl 命令的权限被拒绝

c# - Mkbundle 无法在 OS X 上编译 C# 应用程序

python - 如何获取多对多字段的相关名称?

Python 2.7 与 BeautifulSoup 错误 : Cannot process flags argument with a compiled pattern

php - 如何确定 Pheanstalk 作业是否已完成