咨询无需Anaconda安装Xeus-cling的方法及依赖Anaconda的原因
Great questions—let's break this down clearly, since I know switching package managers when you're comfortable with pip can feel like a huge hassle. I’ve gone through this exact scenario before, so here’s what you need to know:
The short answer is that xeus-cling depends on a stack of compiled C++ libraries (like xeus, cppzmq, and xtl) that don’t play nicely with pip. Pip is built primarily for Python packages, but conda was designed to handle binary dependencies for all languages—including C++. The xeus team maintains pre-compiled conda packages that bundle all these tricky dependencies, so installation is one-and-done for most users. That’s why it’s the go-to in tutorials.
Since you want to stick with your existing pip setup, your best bet is to compile from source (the most reliable non-conda method) or use your system’s package manager if it offers pre-built xeus-cling packages. Below are step-by-step guides for major platforms:
1. Linux (Ubuntu/Debian-based)
- First, install all required system dependencies and build tools:
sudo apt update && sudo apt install build-essential cmake git libzmq3-dev libcppzmq-dev nlohmann-json3-dev libxtl-dev libxeus-dev jupyter-notebook - Clone the official xeus-cling repository with recursive submodules enabled (this pulls in all dependent code):
git clone --recursive <xeus-cling-official-repo-url> cd xeus-cling - Compile and install (replace
/usr/localwith~/.localto install in your user directory and avoidsudo):mkdir build && cd build cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local make -j$(nproc) # Uses all CPU cores for faster compilation sudo make install - Register the Jupyter kernel:
sudo jupyter kernelspec install /usr/local/share/jupyter/kernels/xcpp* - Verify success: Run
jupyter kernelspec list—you should see entries forxcpp11,xcpp14,xcpp17.
2. macOS (Using Homebrew)
- Install dependencies via Homebrew (install Homebrew first if you don’t have it):
brew install cmake git zmq cppzmq nlohmann-json xtl xeus jupyterlab - Clone the repo with recursive submodules:
git clone --recursive <xeus-cling-official-repo-url> cd xeus-cling - Compile and install using Homebrew’s prefix to keep things organized:
mkdir build && cd build cmake .. -DCMAKE_INSTALL_PREFIX=$(brew --prefix) make -j$(sysctl -n hw.ncpu) make install - Register the kernel for your user:
jupyter kernelspec install --user $(brew --prefix)/share/jupyter/kernels/xcpp*
3. Windows (Using MSYS2)
Windows is trickier, but MSYS2 provides a Unix-like environment that simplifies compilation:
- Install MSYS2 (follow the setup guide to update the package database first)
- Open the MinGW-w64 x86_64 terminal and install dependencies:
pacman -S base-devel git cmake mingw-w64-x86_64-gcc mingw-w64-x86_64-zmq mingw-w64-x86_64-cppzmq mingw-w64-x86_64-nlohmann-json mingw-w64-x86_64-xtl mingw-w64-x86_64-xeus mingw-w64-x86_64-jupyter-notebook - Clone and compile:
git clone --recursive <xeus-cling-official-repo-url> cd xeus-cling mkdir build && cd build cmake .. -G "MinGW Makefiles" -DCMAKE_INSTALL_PREFIX=/mingw64 mingw32-make -j$(nproc) mingw32-make install - Register the kernel:
jupyter kernelspec install /mingw64/share/jupyter/kernels/xcpp*
Key Notes
- If CMake throws errors about missing dependencies, double-check that all required libraries are installed (the commands above should cover most cases, but distro-specific variations might exist).
- After installation, launch Jupyter Notebook/Lab—you’ll see the C++ kernels (xcpp11/14/17) available to create new notebooks with.
- You don’t need to touch Anaconda at all for this workflow; your existing pip-managed Python environment will work seamlessly with the new kernel.
内容的提问来源于stack exchange,提问作者pg2455

