从同级目录导入时遇到问题。
我想设置我的软件包,以便所有这些方面同时起作用。
这是我的模块设置:
package/
__init__.py
code/
__init__.py
model.py
helper.py
notebooks/
__init__.py
notebook1.ipynb
在model.py
中的导入:
from helper import *
从包中的命令行运行时,我设置PYTHONPATH =。我可以运行model.py
在notebook1.ipynb
中的导入:
第一种情况:
sys.path.insert(0, os.path.abspath('..'))
from code.model import MetaModel
结果在:ModuleNotFoundError:没有名为“ code.model”的模块; “代码”不是程序包
第二种情况:
sys.path.insert(0, os.path.abspath(os.path.join('../code')))
from model import MetaModel
这有效。为什么我不能使用第一种情况。