Platform Setup Guide#

pyXCP runs on Windows, Linux, and macOS. This guide covers platform-specific installation, C++ extension compilation, CAN driver setup, and common issues.

Quick Start by Platform#

Windows:

# Install Python 3.10+
pip install pyxcp
# For CAN: install vendor driver
# For source builds: install Visual Studio Build Tools
pip install pyxcp --no-binary pyxcp  # to force build

Linux (Ubuntu/Debian):

sudo apt update
sudo apt install python3-pip python3-dev build-essential cmake
pip install pyxcp
sudo apt install can-utils
sudo ip link set can0 up type can bitrate 500000

macOS:

xcode-select --install
brew install python@3.12
pip3 install pyxcp
# CAN options are limited; see CAN section

Windows Setup#

Python installation: use Python 3.10+ from python.org; add to PATH; enable pip; consider disabling path length limit.

Verify:

python --version
pip --version

Install pyXCP (binary wheel recommended):

pip install pyxcp

Build from source:

pip install pyxcp --no-binary pyxcp

C++ build tools:

  1. Visual Studio Build Tools (workload “Desktop development with C++”)

  2. Includes MSVC, CMake, Windows SDK

Verify:

where cl
cmake --version

CAN drivers on Windows#

pyXCP uses python-can backends.

  • Vector: install Vector drivers, then pip install python-can[vector]; verify with pyxcp-probe-can-drivers.

  • PEAK PCAN: install driver + PCAN-View; pip install python-can[pcan].

  • Kvaser: install CANlib SDK; pip install python-can[kvaser].

  • IXXAT: install VCI; pip install python-can[ixxat].

  • Virtual CAN: use python-can virtual backend.

Example config factory:

def create_transport(parent):
    from pyxcp.transport.can import Can
    return Can(parent, can_interface="vector", can_channel=0,
               can_id_master=0x700, can_id_slave=0x701, can_bitrate=500000)

Seed/Key DLLs (32→64-bit bridge)#

Problem: OEM seed/key DLLs are often 32-bit while Python is 64-bit.

Solution: pyXCP includes asamkeydll.exe bridge. Ensure MinGW-w64 is installed if rebuilding is needed; configure SEED_KEY_DLL = "SeedNKeyXcp.dll".

Linux Setup#

Dependencies:

sudo apt update
sudo apt install python3-pip python3-dev build-essential cmake libpython3-dev
pip install pyxcp

SocketCAN example:

sudo ip link set can0 up type can bitrate 500000
pyxcp-probe-can-drivers

macOS Setup#

Install Xcode Command Line Tools and Homebrew Python. Build tools (CMake) come with Homebrew. CAN support depends on vendor hardware; consult vendor docs.

Docker and CI/CD#

  • Use manylinux wheels on Linux where possible.

  • For source builds in CI: install build-essential, cmake, python3-dev (Linux) or MSVC tools (Windows).

Troubleshooting#

  • Missing compiler: install platform build tools (MSVC, Xcode CLT, GCC/CMake).

  • CAN not working: verify driver installation and interface name; use pyxcp-probe-can-drivers.

  • Firewall (Ethernet): allow Python on required ports or test on trusted network.