【发布时间】:2020-02-12 09:56:01
【问题描述】:
我正在编写一个序列到序列模型,并且我有以下目录结构
MyProject/
models/
- __init__.py
- Encoder.py
train/
- __init__.py
- Train.py
在 Train.py 中,尽管尝试使用以下语法,但我无法从 Encoder.py 导入 BiDirectionalEncoder 类
from models.Encoder import BiDirectionalEncoder
对于上面的行,我收到错误“ ModuleNotFoundError: 没有名为 'models' 的模块"
from ..models.Encoder import BiDirectionalEncoder
对于最后一行,我收到错误“ImportError:尝试使用没有已知父包的相对导入”
有没有巧妙的方法来解决这个问题?我不想使用任何 sys.path.append() 来强制添加路径 我在 Spyder 4.0.1 中使用 Python 3.7.6 谢谢!
【问题讨论】:
-
from models.Encoder import BiDirectionalEncoder不工作吗? -
不,不是。这也有点令人沮丧和惊讶,我不知道出了什么问题。
-
运行程序时你的当前目录文件是什么?如果您尝试从
Train.py运行,则系统找不到主我的项目路径。 -
@Wajih 你能解决这个问题吗?
-
我试过了。似乎这是 Spyder 的问题。感谢您的解决方案。
标签: python class import subdirectory