我正在编写一个序列到序列模型,并且我有以下目录结构MyProject/ models/ - __init__.py - Encoder.py train/ - __init__.py - Train.py在 Train.py 中,尽管尝试使用以下语法,但我无法从 Encoder.py 导入类 BiDirectionalEncoderfrom models.Encoder import BiDirectionalEncoder 对于上面的行,我收到错误“ModuleNotFoundError: No module named 'models'”from ..models.Encoder import BiDirectionalEncoder对于最后一行,我收到错误“ImportError:尝试使用没有已知父包的相对导入”有没有办法解决这个问题?我不想使用任何 sys.path.append() 来强制添加路径我在 Spyder 4.0.1 中使用 Python 3.7.6 谢谢!
2 回答
哈士奇WWW
TA贡献1799条经验 获得超6个赞
在同一个包中,您可以进行相对导入,但由于您要退出当前包,因此需要进行绝对导入。
from MyProject.models.Encoder import BiDirectionalEncoder
慕侠2389804
TA贡献1719条经验 获得超6个赞
如果您使用任何 IDE(例如 pycharm),您需要将(我的项目)设置为源引导目录,否则您需要在 settings.py 中检查您的 BASE_DIR
然后你就可以导入模型了。
从models.Encoder导入BiDirectionalEncoder
是的,如果您想从其他环境访问模块,下面是访问和共享模块方式的链接。
希望这能解决您的问题。
添加回答
举报
0/150
提交
取消