我正在尝试运行以下对象检测器, https://github.com/omni-us/squeezedet-keras
文件夹层次结构如下:
挤压-keras
-> experiments
-> kitti
-> scripts
-> train.py
-> main
-> model
-> squeezeDet
-> imagenet.h5
现在,我从squeezedet-keras/experiments/kitti 运行命令:
>>python ../../scripts/train.py --init ../../main/model/imagenet.h5
“train.py”文件以此行开头:
from main.model.squeezeDet import SqueezeDet
这给出了错误:
Traceback (most recent call last):
File "../../scripts/train.py", line 9, in
from main.model.squeezeDet import SqueezeDet
ModuleNotFoundError: No module named 'main'
我从 virtualenv 运行它,我的默认 python 是 3.7.2,在 Windows 10 笔记本电脑上。
最佳答案
Python 解释器很难加载项目的模块。
模块加载器将仅识别以下文件夹:
- 位于
{venv_folder}/lib/python{version}/site-packages/
内 --- 它们可能是通过pip install ...
或安装的>python setup.py install
- 位于当前工作目录
- 由
PYTHONPATH
env var 指向
解决这个问题最简单的方法是设置环境变量:
cd working_dir/
source /path/to/my/venv/
export PYTHONPATH=/path/to/squeezedet-keras
python ../../scripts/train.py --init ../../main/model/imagenet.h5
另一种方法是在执行脚本之前导航到项目的文件夹:
cd /path/to/squeezedet-keras
source /path/to/my/venv/
python scripts/train.py --init main/model/imagenet.h5
关于python - 挤压喀拉斯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54979109/