본문으로 건너뛰기
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(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

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 / 1,000자

이 양식은 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의 스킬 모두 보기

이 스킬의 문제 신고