2

这是我的twistd插件的当前状态,位于project_root/twisted/plugins/my_plugin.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from zope.interface import implements

from twisted.plugin import IPlugin
from twisted.python.usage import Options
from twisted.application import internet, service

from mylib.io import MyFactory


class Options(Options):
    """Flags and options for the plugin."""

    optParameters = [
        ('sock', 's', '/tmp/io.sock', 'Path to IO socket'),
    ]


class MyServiceMaker(object):
    implements(service.IServiceMaker, IPlugin)

    tapname = "myplugin"
    description = "description for my plugin"
    options = Options

    def makeService(self, options):
        return internet.UNIXServer(options['sock'], MyFactory())
  • 里面没有 __init__.py文件project_root/twisted/plugins/
  • 从项目的根目录运行时,输出twistd不显示我的插件
  • 我通过安装我的库python setup.py develop --user,它可以从任何地方导入

有任何想法吗?

4

1 回答 1

2

正如怀疑的那样,这是非常简单的事情:我需要实例化 的实例MyServiceMaker,因此只需service_maker = MyServiceMaker()在脚本底部添加即可解决问题。

于 2014-11-02T15:50:55.970 回答