跳到正文
cccskills
免费在 GitHub 公开

install-python-api

Install the CARLA Python client into a chosen Python environment using bundled packages or PyPI. The skill checks existing installations, selects a suitable package, and verifies imports and version compatibility with a reachable simulator.

中文简介正在准备中。当前显示英语简介。

原文查看原文说明

Installs the CARLA Python client (the `carla` package) into a chosen interpreter so the other python-api skills work — from a wheel bundled with your release or checkout, from PyPI (`pip install carla==X.Y.Z`), or by putting an older release's .egg on PYTHONPATH. Detects what is already present, picks the source that matches your simulator's version, pins numpy<2, and verifies `import carla` plus the client/server version match. Use when the user asks to "install the CARLA Python API", "pip install carla", "set up the carla python package", or when a skill reports "cannot import carla".

查看安装方法

适用场景

  • Set up the Python client for a downloaded CARLA release
  • Install a client for a remote simulator
  • Resolve a cannot import carla error
  • Check client and simulator version compatibility

包含的文件(5)

  • SKILL.md8.5 KB
  • references/sources.md4.7 KB
  • scripts/check_env.sh4.1 KB
  • scripts/env.sh2.8 KB
  • scripts/install_python_api.py10.4 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Install the CARLA Python client

Paths. scripts/… and references/… below are relative to the directory holding this SKILL.md. Your working directory is the user's project, not that directory, so prefix them with its absolute path or the command is not found.

The bootstrap step everything else in python-api depends on: without an importable carla, every one of those skills stops at FAIL cannot import carla. This skill fixes that, into the interpreter you choose, and tells you when the client it installed does not match the simulator you are running.

It is client-side only. Nothing here builds, launches or modifies a simulator.

Instructions

Progress:
- [ ] Step 1: Check prerequisites (bash scripts/check_env.sh), clear FAILs
- [ ] Step 2: detect  — what is installed, which sources exist, what matches
- [ ] Step 3: install — auto-picks the best source, then verifies
- [ ] Step 4: verify against a running server when you have one
- [ ] Step 5: record `PYTHON` with `set_config` — the other skills read it

Step 1: Check prerequisites

bash scripts/check_env.sh

Steps 2-4: detect, install, verify

source scripts/env.sh

python3 scripts/install_python_api.py detect
python3 scripts/install_python_api.py install                       # auto
python3 scripts/install_python_api.py install --dry-run             # show the pip line only
python3 scripts/install_python_api.py install --source pypi --version 0.9.16
python3 scripts/install_python_api.py verify

install is a no-op when carla already imports (--force to reinstall), and every path ends by importing carla in the target interpreter — a pip exit code is not treated as proof.

Which interpreter (the part people get wrong)

PYTHON selects the target; it defaults to python3 on PATH, and it is the same variable the rest of the python-api group uses, so one setting covers them all.

PYTHON=/path/to/venv/bin/python python3 scripts/install_python_api.py install

This matters when an agent runs the skill. If the MCP server was started with uvx/pipx/npx, that launcher puts its own isolated environment first on PATH, so bare python3 is the tool's interpreter — commonly a different minor version, and never the one that talks to CARLA. Installing the client there achieves nothing. check_env.sh recognises those paths and says so. Set PYTHON in the MCP client's env block once:

"env": { "PYTHON": "/home/me/carla-venv/bin/python" }

Sources, and why the order is not arbitrary

auto walks them in this order:

#SourceWhen it appliesWhy this rank
1local wheel — <root>/PythonAPI/carla/dist/carla-*-<cp tag>-*.whlCARLA_PACKAGE_ROOT or CARLA_UE4_ROOT is set and ships oneit is the only artifact guaranteed to match your simulator
2PyPI — pip install carla==X.Y.Zany interpreter PyPI has a wheel forclean and offline-free, but you must name the right version
3egg — carla-*-py<X.Y>-*.eggolder releases that ship an eggnothing to install; it goes on PYTHONPATH (written as a .pth inside a venv)

Not covered here: building from source — that is [[build-carla-ue4]] step 04 (make PythonAPI), the right answer when no wheel exists for your interpreter. Conda and Docker distributions are also out of scope.

PyPI coverage is real but partial — detect prints the live matrix, e.g. 0.9.16 -> cp310, cp311, cp312 (linux + windows, no macOS wheels). Ask for an interpreter it has no wheel for and the skill refuses before pip does, naming the tags that exist.

Version matching

CARLA's client and simulator are expected to be the same version; a mismatch produces WARNING: Client API version = X / Simulator API version = Y on every connection and subtly missing API. So:

  • source 1 (local wheel) inherits the version from the release you actually have;
  • detect/verify query a reachable server and report match or MISMATCH;
  • a mismatch is a WARN, not a failure — it is often intentional (talking to a remote server), so the skill reports it and continues.

numpy<2 is pinned in the same pip transaction: CARLA's bindings are built against the numpy 1.x C API and crash on import under 2.x.

Examples

Example 1: only a downloaded release, no client installed

User says: "I downloaded CARLA and pip install carla-agentic-tools, now what?"

export CARLA_PACKAGE_ROOT=~/CARLA_0.9.16
bash scripts/check_env.sh
python3 scripts/install_python_api.py install     # finds the bundled cp310 wheel

Example 2: no local files at all, remote server

User says: "the simulator runs on another machine, I just need the client"

install --source pypi --version 0.9.16, then verify with CARLA_HOST=<that machine> to confirm the versions agree.

Example 3: a skill just told the agent cannot import carla

Run detect, then install. If detect shows the target interpreter inside a uv/pipx cache path, set PYTHON to the real environment first — otherwise the install lands where nothing will use it.

Recording the path

An export lasts until the shell exits. Persist PYTHON instead, so the next session — and list_skills — still knows where this went:

set_config({"PYTHON": "<the interpreter used above>"})

Without it the group this just enabled keeps reporting available: false, and the next skill re-detects from scratch. CARLA_ROOT is the only CARLA path to record: set_config derives the engine-specific variable itself.

Verify

python3 scripts/install_python_api.py verify

PASS: carla <version> importable by <interpreter>, plus a server comparison when one is reachable. Independent check:

"${PYTHON:-python3}" -c "import carla; print(carla.Client('127.0.0.1',2000).get_server_version())"

Troubleshooting

Problem: PyPI has no cp313 wheel for carla==0.9.16 Cause: no wheel exists for that interpreter. Solution: use a 3.10-3.12 interpreter (PYTHON=…), install a bundled wheel, or build it ([[build-carla-ue4]] step 04).

Problem: installed fine, but a skill still says cannot import carla Cause: the skill ran under a different interpreter than the one installed into — almost always an isolated MCP server env. Solution: detect prints the target; set PYTHON consistently in the client's env block.

Problem: error: externally-managed-environment (PEP 668) Cause: a system interpreter (Ubuntu 24.04+, Debian) refuses direct installs. Solution: install into a venv and point PYTHON at it. check_env.sh flags this before you hit it.

Problem: import carla works but every connection warns about API versions Cause: client and simulator versions differ. Solution: prefer the bundled wheel from the release you run, or install --source pypi --version <server version> (verify prints the server's).

Problem: an egg was found but import carla still fails Cause: the egg's Python version must match the interpreter exactly, and it needs to be on PYTHONPATH. Solution: use the printed export PYTHONPATH=… line, or install into a venv where the skill can write the .pth for you.

Outputs

A carla package importable by the target interpreter (or, for an egg, a PYTHONPATH/.pth entry), plus numpy<2. Nothing else on the system changes.

Source details, the PyPI tag matrix, egg mechanics and version-matching rules: references/sources.md.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

Add a message type to CARLA's native ROS 2 interface. Create its C++ data structure, serialization code for transmission, type identity hash, registration, and tests, with Docker-based hash calculation and build checks.

中文简介正在准备中。当前显示英语简介。

  • Adding a standard ROS 2 message type missing from CARLA
  • Defining a custom carla_msgs message
  • Investigating type-hash warnings
carla-simulator/carla1.5万2026年10月18日 更新

Extend CARLA’s native ROS 2 interface to publish sensor data or receive vehicle commands. Covers topic implementation, registration, data connections, and verification, plus adding middleware, the communication layer used to exchange messages.

中文简介正在准备中。当前显示英语简介。

  • Publish obstacle sensor data to ROS 2
  • Add a topic for vehicle speed commands
  • Integrate another communication middleware
carla-simulator/carla1.5万2026年10月18日 更新

Summarize ScenarioRunner results to see which scenarios passed and which checks failed. Compare runs before and after changes, or analyze recorded driving to produce measurements and plots of vehicle distance and deviation from the lane center.

中文简介正在准备中。当前显示英语简介。

  • Checking scenario pass and fail results
  • Comparing results before and after controller changes
  • Plotting vehicle distances from a recorded run
carla-simulator/carla1.5万2026年10月18日 更新

Checks a local CARLA checkout for missing API documentation, outdated references, broken links, and pages absent from navigation. Produces a grouped Markdown report without building the project or running the simulator.

中文简介正在准备中。当前显示英语简介。

  • Reviewing documentation before a release
  • Finding missing or outdated API references
  • Checking broken links and navigation gaps
carla-simulator/carla1.5万2026年10月18日 更新

Read and display CARLA object bounding boxes, then project them onto a camera image as 2D rectangles. Export an annotated PNG and box coordinates in JSON for object detection annotation work.

中文简介正在准备中。当前显示英语简介。

  • Adding vehicle boxes to a camera image
  • Exporting box coordinates for detection annotations
  • Checking vehicle dimensions
carla-simulator/carla1.5万2026年10月18日 更新

Builds CARLA's ue4-dev branch on Linux, producing the Unreal Engine 4.26 editor, server modules, and an installed Python client package. Fetches required content, optionally compiles native ROS 2 support, and verifies the build against a source-built server.

中文简介正在准备中。当前显示英语简介。

  • Building CARLA ue4-dev from source
  • Compiling CARLA with native ROS 2 support
  • Building the Python client for an existing environment
carla-simulator/carla1.5万2026年10月18日 更新

查看 carla-simulator 的全部技能

报告此技能的问题