2014-02-21 92 views
1

主脚本我有这样导入类从子目录

main.py 
markdown-extensions/ 
    __init__.py 
    doc_extension.py 

这里的目录结构是我doc_extension.py(它的意图是一个裸露的骨头降价后处理器):

from markdown.postprocessors import Postprocessor 
class DocsPostProcessor(Postprocessor): 
    def run(self, text): 
     return "<h1>hello world</h1>" 

class DocsExtension: 
    def extendMarkdown(self,md): 
     postProcessor = DocsPostProcessor() 
     postProcessor.md = md 
     md.postprocessors.add(postProcessor) 

我如何将它导入到我的main.py中?我试过变化以下无济于事:

import markdown-extensions.doc_extension 
import markdown-extensions.* 
import markdown-extensions.doc_extension 
+0

您不能在模块名称(或任何其他名称)中使用“-'。 – Bach

+0

谢谢,如果你补充说,作为答案,我会给你信用。 – Msencenb

回答

2

-符号不是Python名称的有效字符(也称为标识符),无论它是否为模块。请参阅here

1

从降价-extensions.doc_extension进口*

而是是明确的,如*将导入所有的全局变量,方法和类。所以:

从降价-extensions.doc_extension进口DocsPostProcessor,DocsExtension

*编辑 是的,除了你不能有 “ - ” S,我误以为它是 “_”。