问题陈述
在运行scenario_runner.py
报错:
scenario_runner.py:31: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
import pkg_resources
配置
- python --version: 3.8.20
- carla --version: 0.9.13
- scenario_runner --version: 0.9.13
- ubuntu --version: 20.04.6 LTS
原因
在scenario_runner.py
的代码中,使用了pkg_resources.get_distribution("carla")
来获取包的分发信息. 由于pkg_resources
已经被废弃,需要使用新的方式来代替.
解决
对于scenario_runner.py
,可以使用importlib.metadata
来获取安装的包的版本信息. importlib.metadata
是Python 3.8
及以上版本引入的模块,可以用来替代pkg_resources
获取包信息.
使用下面两行代码替换(注释)掉scenario_runner.py
的中使用pkg_resources
的两行:
- 原代码:
31 import pkg_resources
93 dist = pkg_resources.get_distribution("carla")
- 更改为:
31 import importlib.metadata
93 dist = importlib.metadata.distribution("carla")
测试
$ python scenario_runner.py --list
>>> Currently the following scenarios are supported:
>>> FreeRide_1
...