这是我的python文件夹结构(它没有任何python包):
folder/
script1.py
script2.py
script1有:
class myclass(object):
def __init__():
print("in init")
def showReport():
print("in report only function")
script2有:
from . import myclass
当我运行python -m folder.script2
时我得到/usr/bin/python: cannot import name myclass
如何导入此类以便我可以在script2上调用此类的函数?
答案 0 :(得分:2)
尝试使用from script1 import myclass
答案 1 :(得分:1)
你说你有一个软件包,但你仍然需要引用包含你的班级script1
的模块 myclass
,所以:
from .script1 import myclass
P.S。在Python中,习惯使用驼峰大小写来表示类名,因此MyClass
不是myclass
使用名为package
和模块module1
和module2
的工具包的工作示例,然后从package
外部调用python -m package.module2
:
➜ ~ tree package
├── __init__.py
├── module1.py
└── module2.py
➜ ~ cat package/module1.py
class MyClass(object):
def work(self):
print 'Working!'
➜ ~ cat package/module2.py
from .module1 import MyClass
if __name__ == '__main__':
worker = MyClass()
worker.work()
➜ ~ python -m package.module2
Working!