当前位置:  开发笔记 > 编程语言 > 正文

Python 2.5上选择模块的问题

如何解决《Python2.5上选择模块的问题》经验,为你挑选了1个好方法。

我在Python 2.5中有一个监听beanstalk队列的应用程序.它在我测试的所有机器上都能正常工作,除了我新购买的MacBook Pro.

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

Traceback (most recent call last):
  File "jobs.py", line 181, in 
    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 "", line 1, in 
AttributeError: 'module' object has no attribute 'poll'

你对可能发生的事情有任何想法吗?

PS:尽管我非常有信心这不是一个源问题,如果你需要一些关于失败源的背景知识,可以在http://pastie.org/399342](this pastie)找到它.

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

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

ldrg.. 6

根据这张macports票, Apple对poll()的实施是直截了当的.Apple通过在Python中禁用poll()来解决这个问题,而macports现在也禁用了Pythons中的poll.我想这意味着你需要研究Python的select.kevent()而不是mac上的poll.



1> ldrg..:

根据这张macports票, Apple对poll()的实施是直截了当的.Apple通过在Python中禁用poll()来解决这个问题,而macports现在也禁用了Pythons中的poll.我想这意味着你需要研究Python的select.kevent()而不是mac上的poll.

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有