运行TensorFlow DeepLab Cityscapes教程遇模块缺失错误求助
你推测的没错,这个报错几乎都是因为Python找不到cityscapesScripts里的核心模块(包括labels模块)导致的。下面是一步步的解决方法:
第一步:确认并添加cityscapesScripts到PYTHONPATH
系统找不到模块,本质是Python的搜索路径里没有包含cityscapesScripts的目录。你需要把克隆下来的cityscapesScripts的绝对路径添加到环境变量中:export PYTHONPATH=$PYTHONPATH:/absolute/path/to/your/cityscapesScripts比如如果你的cityscapesScripts在
/home/kritika/cityscapesScripts,就替换成这个路径。如果怕每次终端重启都要重新设置,可以把这条命令加到你的~/.bashrc(Linux/macOS)或者~/.zshrc里,保存后执行source ~/.bashrc生效。第二步:验证模块是否能被导入
打开终端输入python,然后执行:from cityscapesscripts.labels import labels如果没有报错,说明模块路径已经配置正确了。这时候再重新运行
sh convert_cityscapes.sh应该就能正常执行了。备选方案:将cityscapesScripts安装为Python包
如果上面的方法还是不行,可以直接把cityscapesScripts安装成本地Python包,这样系统会自动识别模块:- 进入cityscapesScripts的目录:
cd /absolute/path/to/your/cityscapesScripts - 执行安装命令(用可编辑模式,方便后续更新脚本):
pip install -e .
安装完成后,再尝试运行转换脚本,问题应该就能解决。
- 进入cityscapesScripts的目录:
额外检查
还要确保convert_cityscapes.sh脚本里的路径配置没问题,比如脚本中是否硬编码了cityscapesScripts的路径,如果有的话要改成你实际的路径。另外,如果你用了虚拟环境,要确保在激活虚拟环境的状态下执行上述所有操作。
内容的提问来源于stack exchange,提问作者Kritika

