Python - 从模块导入相同的目录

时间:2013-07-16 16:34:16

标签: python import module directory yaml

我正在导入一个存储在:pylearn2 / datasets /上的python类当我导入该目录上的其他文件时说好,但是当我尝试导入一个名为make_dataset.py的文件时,我刚创建的文件说:

  

无法导入pylearn2.datasets.make_dataset但可以导入   pylearn2.datasets。原始异常:没有名为make_dataset的模块

这是目录的结构:

   pylearn2\
       __init__.py 
       datasets\
          __init__.py
          hepatitis.py
          matlab_dataset.py
          make_dataset.py
               ... 

你能解释一下我为什么会出现这个错误吗? 我也使用.yaml文件:

!obj:pylearn2.train.Train {
    "dataset": !obj:pylearn2.datasets.make_dataset.Classificator {}
 }

2 个答案:

答案 0 :(得分:0)

您的__init__.py目录中可能缺少pylearn2\个文件 There是有关目录结构的一些信息。 There是模块的官方文档。

答案 1 :(得分:0)

__init__.py内,您需要导入目录中的模块。否则,您无法以您描述的方式导入子模块。

datasets/__init__.py

import hepatitis
import matlab_dataset
import make_dataset

如果您的__init__.py为空,则可以执行import pylearn2.datasets然后访问代码中的子模块(即a = pylearn2.datasets.make_dataset.Classificator()),但是实际上需要import pylearn2.datasets.make_dataset导入__init__.py中的子模块。