从子目录将类导入主脚本

时间:2014-02-21 08:22:27

标签: python import module package

我有一个像这样的目录结构

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

来自markdown-extensions.doc_extension import *

但是要明确,因为*将导入所有全局变量,方法和类。所以:

来自markdown-extensions.doc_extension导入DocsPostProcessor,DocsExtension

*编辑 是的,除了你不能有“ - ”之外,我把它误认为是“_”。