无法导入Python类

时间:2015-03-16 02:53:05

标签: python python-import nameerror

我遇到Python导入问题。我创建了一个模块,用一个语句方便地导入模块内部的几个类。我将所有导入都放在该模块的init中,但它似乎不起作用。

maindir\
- driver.py
- Utility\
  - __init__.py
  - UtilityClasses.py

我的文件夹结构如上所示。 在UtilityClasses中我有一个我创建的类叫做MyClass。

在Utility文件夹的init文件中,我的代码是:

import UtilityClasses
from UtilityClasses import MyClass

在driver.py中我有代码说:

import Utility
myVar = MyClass(param1)

但是,当我运行它时,我收到一个错误,告诉我没有定义名称MyClass。

2 个答案:

答案 0 :(得分:3)

__init__.py,您可以

from UtilityClasses import *
from SomeOtherFile import *

这将导入UtilityClasses.pySomeOtherFile.py的所有内容。

但你仍然需要使用模块名称

来访问它

更新:你可以访问这样的所有内容

driver.py

from Utility import *

a = MyClass()
b = ClassInSomeOtherFile()

答案 1 :(得分:2)

您的代码

import Utility
myVar = MyClass(param1)

当然没有工作 - MyClass没有提到它,它无处不可思议。显式优于隐式:

from Utility import MyClass
myVar = MyClass(param1)

应该像魅力一样!