Python 无法从相同/其他目录中的脚本导入模块
目录结构:Python 无法从相同/其他目录中的脚本导入模块,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,目录结构: . ├── 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 │ ├── NLTKPrepr
.
├── 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\u 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'
这里的问题是什么?为什么格式来自。导入*
在这里似乎不起作用
编辑 正如@deathangel908所建议的,我已经在两个目录中添加了
\uuu init\uuu.py
空文件,但错误仍然存在。- 为了将目录标记为要导入的包,它需要在该目录中具有最少的空
。因此,将\uuuu init\uuuu.py
文件添加到\uuuu init\uuuuu.py
和分类
目录中utils
- 为了导入绝对路径包,您需要从根包作为模块运行python解释器:
python3-m“classification.lstm\u train”
touch\uuuu init\uuuuuuuy.py做的,但是我仍然得到相同的错误。我应该调用python2 classification/lstm_train.py
还是从同一个dir works调用?使用相对路径,或者设置公共路径请查看我的编辑,并使用相对路径或公共路径更新您的问题。按照你的描述,它将不起作用。尝试使用python2/3 classification/lstm\u train.py从根目录运行时,会产生相同的错误,并将添加到导入行前面。
并从classification
dir内调用会给出:from..classification.lstm\u utils导入*值错误:尝试的相对导入超出了顶级包装
from utils.data_splits import get_train, get_val