问题描述
对于执行文本test.py与模块ptb_test.py分别在独立的目录下(模块在自定义包中)时(如图),如果在test.py中执行“from calculate_entropy import pywt_test”,会出现“ModuleNotFoundError: No module named ‘calculate_entropy’”的错误
问题分析
这是因为test.py会从当前文件所在目录和系统路径“sys.path”中搜索,因此我们需要在执行文件前/时将pywt_test.py的包加入到系统路径“sys.path”中
import os.path as osp
import sys
def add_path(path):
if path not in sys.path:
sys.path.append(path)
# print(sys.path)
this_dir = osp.dirname(__file__)
lib_path = osp.join(osp.dirname(this_dir), 'calculate_entropy')
add_path(lib_path)
同时,不要“from calculate_entropy import pywt_test”,而是直接加载包就可以了“import ptb_test”。