目录结构:
.
├── classification
│ ├── lstm_repres.py
│ ├── lstm_test.py
│ ├── lstm_train.py
│ ├── lstm_utils.py
│ ├── lstm_utils.pyc
│ └── svm_run.py
├── utils
│ ├── data_splits.py
│ ├── evaluation.py
│ ├── load_data.py
│ ├── NLTKPreprocessor.py
│ ├── resources.py
│ ├── TfIdf.py
│ └── vector_utils.py
在lstm_train.py
:
from classification.lstm_utils import *
当我尝试同时使用python2 lstm_train.py
或python3 lstm_train.py
时,我得到:
Traceback (most recent call last):
File "classification/lstm_train.py", line 7, in <module>
from classification.lstm_utils import *
ModuleNotFoundError: No module named 'classification'
同一行发生
from utils.data_splits import get_train, get_val
这里是什么问题?为什么from <dir>.<script> import *
格式在这里似乎不起作用?
如@ deathangel908所建议,我已经向两个目录添加了__init__.py
个空文件,但错误仍然存在。
答案 0 :(得分:0)
为了将目录标记为要导入的软件包,它必须在该目录中具有最少的空白__init__.py
。因此,将__init__.py
文件添加到classification
和utils
目录中。
要导入绝对路径包,您需要将root包中的python解释器作为模块运行:python3 -m "classification.lstm_train"