from notify.sound_notify import SoundNotifier
from notify.toast_nofity import ToastNotifier
notify的子类【带前缀的notify】引入同级的父类
有两种引入方式
from notify import Notifier
from .notify import Notifier
写法1,在vscode运行notifier自己时,可以正常运行
if __name__ == '__main__':
notifier=SoundNotifier()
notifier.notify()
但是运行clock时,提示导入失败
NameError: name 'Notifier' is not defined
而写法2,运行clock时正常,而运行notifier自身,提示不能通过相对路径导入。
☹️☹️☹️☹️☹️☹️☹️☹️☹️
百度说,可以使用sys.path解决
import os,sys
sys.path.append(os.path.dirname(__file__))
from notify import Notifier
但是,运行clock依然提示导入失败
☹️☹️☹️☹️☹️☹️☹️☹️☹️
于是乎,我想了一个very ugly的写法
if __name__ == '__main__':
from notify import Notifier
else:
from .notify import Notifier
😭😭😭😭😭😭😭
请明白的大神讲解一下,正确的导入到底该怎么做?