2. 环境准备

说实话,做自动驾驶仿真这么多年,我见过太多人一上来就急着跑CARLA,结果环境没配好,折腾一整天连个Demo都跑不起来。嗯,咱们今天就把这事一次性说清楚。

我个人习惯是,先把地基打牢。环境准备这事,说白了就是三块:操作系统选哪个、硬件够不够用、Python环境怎么搭。咱们一个一个来。

操作系统要求

CARLA官方支持的操作系统其实不多,我帮你整理了一下:

操作系统 支持版本 我的评价
Ubuntu 18.04 / 20.04 / 22.04 首选,稳定省心
Windows 10 / 11 (64位) 能用,但坑多
其他Linux发行版 不官方支持 别折腾,真的

我个人强烈推荐 Ubuntu 20.04。为什么?我在项目中遇到过太多次,Ubuntu 22.04虽然新,但有些依赖包还没跟上,编译时容易报错。Ubuntu 18.04又太老了,很多Python库的新版本已经不支持了。20.04是那个「刚刚好」的版本。

⚠️ 注意:如果你用Windows,记得关闭杀毒软件的实时保护。我曾经被Windows Defender坑过一次,编译到一半突然把CARLA的某个dll文件给隔离了,排查了整整两个小时...

硬件配置建议

做仿真嘛,硬件是硬门槛。你想想看,CARLA要同时跑虚幻引擎的渲染、物理引擎的计算、还有传感器数据的模拟,这可不是闹着玩的。

我按经验分了三个档次:

配置项 最低配置 推荐配置 舒适配置
CPU 4核8线程 6核12线程 8核16线程以上
内存 16GB 32GB 64GB
显卡 GTX 1060 RTX 2070 RTX 3080以上
显存 4GB 8GB 12GB+
硬盘 SSD 256GB SSD 512GB NVMe 1TB

这里有个坑我得提醒你——显存比内存更重要。CARLA渲染高精度的城市环境时,显存是第一个被吃光的资源。我自己的机器是RTX 3070,跑个中等规模的地图,显存占用就到6GB了。

💡 小技巧:如果你显卡不够用,可以试试CARLA的「无渲染模式」。虽然看不到画面,但传感器数据照样能出。我在做算法验证时经常这么干,省资源又高效。

Python环境与依赖安装

好了,操作系统和硬件都搞定了,接下来就是Python环境。这部分我踩过的坑最多,你仔细听。

Python版本选择

CARLA 0.9.x系列要求 Python 3.7 ~ 3.9。别用Python 3.10以上,我试过,有些依赖包直接报错。

我个人习惯用 Python 3.8,兼容性最好。

虚拟环境创建

千万别直接在系统Python里装东西!我刚开始做的时候就这么干过,结果把系统搞崩了,重装了三次系统...后来学乖了,用虚拟环境隔离。

# 安装Python 3.8(如果还没有)
sudo apt update
sudo apt install python3.8 python3.8-dev python3.8-venv

# 创建虚拟环境
python3.8 -m venv carla_env

# 激活虚拟环境
source carla_env/bin/activate

# 验证版本
python --version
# 应该输出:Python 3.8.x

核心依赖安装

CARLA的Python客户端依赖不多,但有几个关键库必须装对版本:

# 升级pip
pip install --upgrade pip

# 安装核心依赖
pip install numpy==1.23.5
pip install pygame==2.1.2
pip install opencv-python==4.7.0.68
pip install matplotlib==3.5.3
pip install scipy==1.9.3
pip install shapely==2.0.1
pip install networkx==2.8.8
🔑 关键点:版本号一定要对上!尤其是numpy和pygame。我遇到过好几次,numpy版本太高导致某些函数被弃用,代码跑着跑着就报错。说白了,CARLA对依赖版本很敏感,别贪新。

CARLA Python API安装

这一步很多人会搞错。CARLA的Python API不是从PyPI安装的,而是从CARLA的安装包里拿:

# 假设你已经下载并解压了CARLA包
# 进入CARLA目录
cd CARLA_0.9.14

# 安装Python API
pip install PythonAPI/carla/dist/carla-0.9.14-cp38-cp38-linux_x86_64.whl

# 验证安装
python -c "import carla; print(carla.__version__)"
# 应该输出:0.9.14

嗯,这里要注意,whl文件名里的 cp38 表示Python 3.8版本。如果你用的是Python 3.7,就找 cp37 的文件。别搞混了。

验证环境是否正常

装完之后,我建议你跑一个最简单的测试脚本:

import carla
import numpy as np

# 尝试连接CARLA服务器
try:
    client = carla.Client('localhost', 2000)
    client.set_timeout(10.0)
    world = client.get_world()
    print(f"✅ 连接成功!当前地图:{world.get_map().name}")
except Exception as e:
    print(f"❌ 连接失败:{e}")
    print("请确保CARLA服务器正在运行")

如果输出「连接成功」,恭喜你,环境准备就完成了!

💡 避坑指南:我曾经在连接时遇到「timeout」错误,排查了半天发现是防火墙把2000端口给封了。如果你也遇到类似问题,先检查一下防火墙设置。

本章知识体系

为了让你更直观地理解整个环境准备流程,我画了一张图:

环境准备知识体系 操作系统 硬件配置 Python环境 Ubuntu 20.04(推荐) Windows 10/11(可用) CPU ≥ 6核 / 内存 ≥ 32GB 显卡 ≥ RTX 2070 / 显存 ≥ 8GB Python 3.8 + 虚拟环境 numpy / pygame / opencv ✅ 环境准备完成 → 可以开始仿真

这张图把整个环境准备的流程串起来了。你按这个顺序来,基本不会出大问题。