复现drivefuzz时配环境遇到了一些坑,在这里记录一下。
从drivefuzz gitlab clone之后,install 里的其他步骤都没有什么问题,但是会卡在carla 的make PythonAPI. 以及drivefuzz中使用的是carla-9.10.1, 截止2022.12 ,最新的版本是9.13, 要注意版本一致。
1. 不使用drivefuzz中自带的carla,那个里面没有.git 文件,后续会错。
解决方法: 从carla github 中clone 代码,checkout到9.10.1 的版本进行后续操作。
2. 提示no pyconfig.py 文件。
这个主要是因为用了conda 的虚拟环境,环境变量中找不到对应的pyconfig 位置。
解决方法:a. 直接在terminal运行make PythonAPI的时加入这句CPLUS_INCLUDE_PATH="/home/$your user name$/anaconda3/envs/drivefuzz/include/python3.6m" make PythonAPI b. 把这句加入到bashrc中
3. 解决了问题1之后,会提示找不到xsercesc
在这一步卡了很长时间,使用了广泛流传的方法apt-get install libxerces-c-dev 没有用,单独安装了xercesc也不行,最后的解决方法是:
1. 将setup.sh (可在carla 目录下搜索)中的版本3.2.3 更改为3.2.4, 因为这个地方的下载链接更新了,3.2.3 会显示404 Not Found.
2. make PythonAPI 然后会报错说在xercesc-3.2.4/include 中找不到指定文件。 将xercesc-3.2.4 复制一份,改名为 xercesc3.2.3 再次运行 make PythonAPI 即可
补充,这里复制了之后make PythonAPI 仍然失败,将之前本机上成功安装的carla里的xercesc-3.2.3-install 文件夹复制过来之后就成功了。
4. 运行drivefuzz 显示没有 .Xauthourity 文件。 解决方法是重新登入一次即可(ssh)。
5. 经过上述的一些bug后,我这边运行drivefuzz还是不行。显示client 和server版本不一致。这个主要是我之前在本机上使用非docker的方式安装使用过carla,system path 中的carla egg的位置指的还是旧的0.9.13 的版本,而非我们需要的0.9.10 版本。
解决办法:1.将bashrc文件中的旧的0.9.13 版本的egg路径注释掉 2. pip uninstall Carla 3.在drivefuzz中代码中sys.append(path to 0.9.10.egg) .即可
这里提醒我自己,如果之后我的0.9.13 的carla运行不起来的话,记得pip install carla +恢复bashrc中的egg路径。
由于vscode 的配置导致整个project 崩溃过一次,在重配置的过程中添加一点细节。