1

私は理解できない非常に奇妙な問題を抱えています。私はpwman3を拡張しており、モジュール選択を使用しています。ui.pyファイルの先頭にインポートしました。

ただし、コードを実行すると、次のエラーが発生します。

エラー: 'function' オブジェクトに属性 'select' がありません

関連するコードは次のとおりです。

import select

...snip...

class PwmanCli(cmd.Cmd):
...snip ...

    def print_node(self, node):
        width = str(_defaultwidth)
        print "Node %d." % (node.get_id())
        print ("%"+width+"s %s") % (typeset("Username:", ANSI.Red),
                                    node.get_username())
        print ("%"+width+"s %s") % (typeset("Password:", ANSI.Red),
                                    node.get_password())
        print ("%"+width+"s %s") % (typeset("Url:", ANSI.Red),
                                    node.get_url())
        print ("%"+width+"s %s") % (typeset("Notes:", ANSI.Red),
                                    node.get_notes())
        print typeset("Tags: ", ANSI.Red),
        for t in node.get_tags():
            print "%s " % t.get_name(),
        print

        def heardEnter():
            #import select # this fixes the problem ...
            i,o,e = select.select([sys.stdin],[],[],0.0001)
            for s in i:
                if s == sys.stdin:
                   input = sys.stdin.readline()
                        return True
                return False

        def waituntil_enter(somepredicate,timeout, period=0.25):
            mustend = time.time() + timeout
            while time.time() < mustend:
                  if somepredicate():
                     break
                  time.sleep(period)
                  self.do_cls('')
        print "Type Enter to flush screen (autoflash in 5 sec.)"
        waituntil_enter(heardEnter(), 5)

import select関数内で行うと、heardEnterすべて正常に動作します。しかし、私はまだこの動作の原因が何なのか疑問に思っています。
そのあたりの専門家の声が聞けてよかったです。

4

1 に答える 1

1

名前の間に競合がある可能性があります。インポートステートメントを次のように変更してみてくださいfrom select import select

于 2012-08-14T08:41:15.497 に答える