2013-04-24 3 views
0

Я только начал работать с витыми. У меня есть некоторые проблемы, чтобы понять систему скрученных плагинов. То, что я хотел бы получить, - это папка/пакет в моем приложении, где я могу разместить плагины так, чтобы они были распознаны скрученными, когда я запускаю реактор.скрученные плагины/где их разместить

Моей структура проекта выглядит следующим образом:

MyProj 
    |-__init__.py 
    |-myproj 
     |-__init__.py 
     |-imatism.py 
     |-twisted 
      |-__init__.py 
      |-plugins 
       |-simplematerial.py 

После объяснений в документе The Twisted Plugin System, я не уверен, если я помещаю плагин в нужном пакете. Нет init .py в каталоге плагинов, как описано в учебнике. Ошибки не возникают при запуске реактора, но также getPlugins(MyProj.myproj.imatism.IMaterial) возвращает пустой список, даже если я создаю два объекта SimpleMaterial.

Я также попробовал «Альтернативные плагиновые пакеты» (см. Ссылку выше), которая закончилась тем же поведением - никаких ошибок, но также и никакого выхода плагинов.

Возможно, плагины загружены, но не получают экземпляр правильно или не в том месте?

Может кто-нибудь помочь?

ответ

0

Вы имели в виду init.py в вашем ответе? Или это должны быть файлы __init__.py?

Если последнее, то попробуйте изменить структуру вокруг этого:

MyProj 
    |-myproj 
     |-__init__.py 
     |-imatism.py 
     |-twisted 
      |-plugins 
       |-simplematerial.py 

Важно отметить, что __init__.py делает каталог в (импорт-стиле, а не распределение стиле) Python пакет. Помещение __init__.py в MyProj сделало бы import MyProj работоспособной вещью для написания кода приложения, но поскольку у вас не было __init__.py в MyProj/myproj, вы не смогли бы import MyProj.myproj, поэтому большая часть вашего кода, вероятно, была бы недоступна. Также избыточность в названии не очень помогает.

Я также удалил __init__.py от MyProj/myproj/twisted, потому что это так, как работает система Twisted plugin: вы не делаете этот каталог пакетом Python, это просто обычный каталог.

+0

Извините, я имел в виду '__init __. Py', конечно. Я отредактировал вопрос. Проблемы не касались импорта. Но вы правы с файлом '__init__' в' MyProj/myproj/twisted', то есть. Благодаря! – user937284

+0

(Резервирование происходит из учебника, но я думаю, что вы правы в этом). – user937284

Смежные вопросы