从不同的文件夹级别导入 class - Python
Import a class from different folder levels - Python
我正在编写一个序列到序列模型,我有以下目录结构
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: attempted relative import with no known parent package"
有什么好的方法可以解决这个问题吗?我不想使用任何 sys.path.append() 来强制添加路径
我在 Spyder 4.0.1 中使用 Python 3.7.6
谢谢!
在同一个包中,您可以进行相对导入,但由于您要离开当前包,因此需要进行绝对导入。
from MyProject.models.Encoder import BiDirectionalEncoder
如果您正在使用任何 IDE(例如 pycharm),您需要将(我的项目)设置为源引导目录
否则你需要在 settings.py
中检查你的 BASE_DIR
然后您就可以导入模型了。
从 models.Encoder 导入双向编码器
是的,如果你想从下面的其他环境访问模块是 link
了解访问和共享模块的方法。
python module:- importing(accessing) creating and sharing
希望这能解决您的问题。
我正在编写一个序列到序列模型,我有以下目录结构
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: attempted relative import with no known parent package"
有什么好的方法可以解决这个问题吗?我不想使用任何 sys.path.append() 来强制添加路径 我在 Spyder 4.0.1 中使用 Python 3.7.6 谢谢!
在同一个包中,您可以进行相对导入,但由于您要离开当前包,因此需要进行绝对导入。
from MyProject.models.Encoder import BiDirectionalEncoder
如果您正在使用任何 IDE(例如 pycharm),您需要将(我的项目)设置为源引导目录 否则你需要在 settings.py
中检查你的 BASE_DIR然后您就可以导入模型了。
从 models.Encoder 导入双向编码器
是的,如果你想从下面的其他环境访问模块是 link 了解访问和共享模块的方法。
python module:- importing(accessing) creating and sharing
希望这能解决您的问题。