将pycurl导入纵横制io错误ou

2024-05-14 15:58:21 发布

您现在位置:Python中文网/ 问答频道 /正文

好的,我想用纵横制io并用python构建一个应用程序。你知道吗

我可以让演示工作,但我的应用程序将需要剥离线程使用pycurl听长寿命的http连接。你知道吗

另外纵横制io代码和pycurl代码可以工作,但是当我执行以下操作时,会得到“import not found”:

import sys
from twisted.internet.defer import inlineCallbacks
from twisted.logger import Logger

from autobahn.twisted.util import sleep
from autobahn.twisted.wamp import ApplicationSession
from autobahn.wamp.exception import ApplicationError

from legacy_misc import Legacy_Listener

client = Legacy_Listener("box01")
client.daemon = True
client.start()

class AppSession(ApplicationSession):

log = Logger()
@inlineCallbacks
def onJoin(self, details):

    # SUBSCRIBE to a topic and receive events
    #
    def onhello(msg):
        self.log.info("event for 'onhello' received: {msg}", msg=msg)

    yield self.subscribe(onhello, 'com.example.onhello')
    self.log.info("subscribed to topic 'onhello'")

    # REGISTER a procedure for remote calling
    #
    def add2(x, y):
        self.log.info("add2() called with {x} and {y}", x=x, y=y)
        return x + y

    yield self.register(add2, 'com.example.add2')
    self.log.info("procedure add2() registered")

    # PUBLISH and CALL every second .. forever
    #
    counter = 0
    while True:

        # PUBLISH an event
        #
        yield self.publish('com.example.oncounter', counter)
        self.log.info("published to 'oncounter' with counter {counter}",
                        counter=counter)
        counter += 1

        if counter > 5:
            break

        # CALL a remote procedure
        #
        try:
            res = yield self.call('com.example.mul2', counter, 3)
            self.log.info("mult() called with result: {result}",
                            result=res)
        except ApplicationError as e:
            # ignore errors due to the frontend not yet having
            # registered the procedure we would like to call
            if e.error != 'wamp.error.no_such_procedure':
                raise e

        yield sleep(1)

遗留的\u监听器包含带有“import pycurl”的线程代码(这个模块本身工作得很好)

一旦我混合了纵横制io示例代码与我自己的代码,我得到以下错误:

2016-04-09T20:42:09+0100 [Container   26333] Worker process starting (PyPy-EPollReactor) ..

2016-04-09T20:42:13+0100[控制器26219]ID为“worker2”和PID 26333的容器已启动 2016-04-09T20:42:13+0100[集装箱26333]组件加载失败 回溯(最近一次呼叫): 文件“/opt/crossbar/site packages/autobahn/wamp/websocket.py文件,第90行,在onMessage中 自我_会话.onMessage(消息) 文件“/opt/crossbar/site packages/autobahn/wamp/协议.py,第809行,在onMessage中 回复时=txaio.as\未来(端点.fn,*调用参数,**调用参数) 文件“/opt/crossbar/site packages/txaio/德克萨斯州,第339行,将来 返回maybeDeferred(fun,*args,**kwargs) 文件“/opt/crossbar/site packages/twisted/internet/延迟.py,第150行,在maybeDeferred中 结果=f(*args,**kw) --- --- 文件“/opt/crossbar/site packages/crossbar/worker/容器.py,第192行,在start\u container\u组件中 create\u component=\u appsession\u loader(配置) 文件“/opt/crossbar/site packages/crossbar/worker/init.py”,第74行,在appsession\u loader中 Python=搜索路径 高速公路.wamp.exception.ApplicationError:ApplicationError(错误=,参数=['导入类失败')你好。AppSession\'\n回溯(最后一次调用):\n File“/opt/crossbar/site packages/autobahn/wamp/协议.py,第809行,在onMessage\n on\u reply=txaio.as\未来(端点.fn,*调用参数,**调用\u kwargs)\n File“/opt/crossbar/site packages/txaio/德克萨斯州,第339行,将来返回maybeDeferred(fun,*args,**kwargs)\n File“/opt/crossbar/site packages/twisted/internet/延迟.py“,第150行,in maybeDeferred\n result=f(*args,**kw)\n File”/opt/crossbar/site packages/crossbar/worker”/容器.py,第192行,在启动\u容器\u组件\n创建\u组件=\u appsession \u loader(config)\n----\n文件“/opt/crossbar/site packages/crossbar/worker/init.py”,第58行,在\u appsession \u loader模块中=importlib.import\u模块(module\u name)\n File“/opt/crossbar/lib python/2.7/importlib/init.py”,第37行,在import\u模块中\nimport(名称)\n File“/home/osbox/qbtwebmon/你好,派瑞“,第36行,在\n from legacy \u misc import legacy \u Listener中”\nexceptions.ImportError:没有名为legacy_misc\n']的模块,kwargs={'pythonpath':[u'/home/osboxes/qbtwebmon'、'/opt/crossbar/site packages/crossbar/worker'、'/opt/crossbar/bin','/opt/crossbar/lib-pypy/扩展名','/opt/crossbar/lib-pypypy','/opt/crossbar/lib-python/2.7','/opt/crossbar/lib-python/2.7/lib-tk','/opt/crossbar/lib-python/2.7/plat-linux2','/opt/crossbar/site-packages','/home/osboxes/qbtwebmon/wamp-venv/lib/python2.7/site-packages']},enc\u algo=None)

2016-04-09T20:42:13+0100[Container 26333]Python模块搜索路径: 2016-04-09T20:42:13+0100[集装箱26333]/home/osbox/qbtwebmon 2016-04-09T20:42:13+0100[集装箱26333]/opt/crossbar/现场包装/crossbar/worker 2016-04-09T20:42:13+0100[集装箱26333]/opt/crossbar/bin 2016-04-09T20:42:13+0100[集装箱26333]/opt/crossbar/libèpypy/扩展 2016-04-09T20:42:13+0100[集装箱26333]/opt/crossbar/lib\u pypy 2016-04-09T20:42:13+0100[集装箱26333]/opt/crossbar/lib python/2.7 2016-04-09T20:42:13+0100[集装箱26333]/opt/crossbar/lib python/2.7/lib-tk 2016-04-09T20:42:13+0100[容器26333]/opt/crossbar/lib python/2.7/plat-linux2 2016-04-09T20:42:13+0100[集装箱26333]/opt/crossbar/site包 2016-04-09T20:42:13+0100[集装箱26333]/home/osboxes/qbtwebmon/wamp\u venv/lib/python2.7/site-packages 2016-04-09T20:42:13+0100[集装箱26333]NativeWorkerSession.onUserError 2016-04-09T20:42:13+0100[控制器26219]crossbar.error.class\导入\失败:未能导入类'你好。AppSession' 回溯(最近一次呼叫): 文件“/opt/crossbar/site packages/autobahn/wamp/协议.py,第809行,在onMessage中 回复时=txaio.as\未来(端点.fn,*调用参数,**调用参数) 文件“/opt/crossbar/site packages/txaio/德克萨斯州,第339行,将来 返回maybeDeferred(fun,*args,**kwargs) 文件“/opt/crossbar/site packages/twisted/internet/延迟.py,第150行,在maybeDeferred中 结果=f(*args,**kw) 文件“/opt/crossbar/site packages/crossbar/worker/容器.py,第192行,在start\u container\u组件中 create\u component=\u appsession\u loader(配置) --- --- 文件“/opt/crossbar/site packages/crossbar/worker/init.py”,\u appsession\u loader中的第58行 模块=importlib.import\u模块(模块名称) 文件“/opt/crossbar/lib python/2.7/importlib/init.py”,第37行,在import\u模块中 导入(名称) 文件“/home/osbox/qbtwebmon”/你好,派瑞“,第36行,in 从legacy\u misc导入legacy\u侦听器 例外.ImportError:没有名为legacy\u misc的模块

2016-04-09T20:42:13+0100【控制器26219】向子流程发送项26272 2016-04-09T20:42:13+0100[控制器26219]等待26272退出。。。你知道吗

现在经过几个小时的谷歌搜索,我意识到pycurl在pypy中不起作用,这就是为什么纵横制io正在运行,但我想知道是否有一种方法可以说“使用pypy”来运行crossbar,而“使用cpython”来运行项目?你知道吗

最后,这不是路径问题,我附加了它并对此进行了测试。你知道吗


Tags: 模块文件frompyimportselflibpackages
1条回答
网友
1楼 · 发布于 2024-05-14 15:58:21

好的,基本上我是用pypy编写的“yum install crossbar”方法来安装的。如果您通过pip安装,它将为您提供CPython版本,这也比pypy版本IMHO更快。你知道吗

注意:pip install crossbar[all]是一个难题,您先修复一个编译问题,然后再修复另一个编译问题,只需执行标准的pip install crossbar即可。你知道吗

相关问题 更多 >

    热门问题