在运行别人的代码时,有时总会出现 from A import B ModuleNotFoundError: No module named 'A'
问题,但是这里的A
和B
是文件夹,因此我将总结一下关于python项目不同目录下导入文件的问题。
一.我遇到的问题
当前处于examples/spcl_train_uda.py
文件下,在这个文件中,想要导入当前目录的父目录的同级目录下的子目录文件,
– examples
|– spcl_train_uda.py
–spcl
|– datasets
|– regdb.py
|– models
但是按照下图所示导入会报此错误:from spcl import datasets ModuleNotFoundError: No module named 'spcl'
提示找不到父级目录examples
的同级目录spcl
。
二.解决办法
经过阅读大量相关目录文件导入的知识,尝试将当前目录加入源目录也不行。
又尝试用sys.path.append("..")
加入本目录下的父级目录,但是没有用。
import sys
sys.path.append("..")
尝试用sys.path.append(".")
引入了当前目录,报错就解决了。
import sys
sys.path.append(".")
相关于python项目不同目录下导入文件的问题:参考文章