【发布时间】:2017-08-02 19:44:41
【问题描述】:
我有四个文件:menu.py、notebook.py、__init__.py 和 test.py,它们按照 @afaq 的建议排列。
我的notebook.py:
class Note:
def __init__(self,memo,tag = ''):
self.memo = memo
self.tag = tag
def match(self,filter):
'''determine if this note matches the filter text, return
true if match, false if not'''
return filter in self.memo or filter in self.tag
class Notebook:
def __init__(self):
'''ininitalize a notebook with empty list'''
self.note = []
def search(self,filter):
'''Find all notes that match the given filter string.'''
return [note for note in self.note if note.match(filter)]
还有menu.py:(已编辑)
import sys
from .notebook import Note, Notebook
class Menu:
'''Display a menu and respond to choices when run.'''
def __init__(self):
self.notebook = Notebook()
self.choices = {
"1": self.search_note,
"2": self.quit
}
def display_menu(self):
print("""
Notebook Menu
1. Search Notes
2. Quit
""")
def run(self):
'''Display the menu and respond to choices.'''
while True:
self.display_menu()
choice = input("Choice is: ")
action = self.choices.get(choice)
if action:
action()
else:
print("{0} is not a valid choice".format(choice))
def search_note(self):
'''search for text and display all notes contain it'''
filter = input("Search for: ")
notes = self.notebook.search(filter)
self.show_note()
def quit(self):
print("Bye bye")
sys.exit(0)
我的__init__.py 是空的
我的test.py:
from Notebook.my_notebook.menu import Menu
if __name__ == "__main__":
Menu().run()
当我运行test.py 时,python 会返回此错误:
Traceback (most recent call last):
File "test.py", line 1, in <module>
from Notebook.my_notebook.menu import Menu
ModuleNotFoundError: No module named 'Notebook'
我该如何解决这个问题?
【问题讨论】:
-
笔记本不是全局模块,请阅读stackoverflow.com/questions/1112618/…
-
@Filip:谢谢,我编辑
.notebook而不是notebook并得到了这个新错误。你能帮忙吗? -
试试
from . import notebook -
python 返回这个错误
Traceback (most recent call last): File "menu.py", line 2, in <module> from . import Note, Notebook ImportError: cannot import name 'Note' -
您没有
Notebook包或任何名为my_notebook或menu的东西。你为什么期待from Notebook.my_notebook.menu import Menu这样做?你认为 import 语句是如何工作的?
标签: python python-import importerror