This blurb might help with that question: The main issue with Boost.Python—and the reason for creating such a similar project—is Boost. Boost is an enormously large and complex suite of utility libraries that works with almost every C++ compiler in existence. This compatibility has its cost: arcane template tricks and workarounds are necessary to support the oldest and buggiest of compiler specimens. Now that C++11-compatible compilers are widely available, this heavy machinery has become an excessively large and unnecessary dependency. Think of this library as a tiny self-contained version of Boost.Python with everything stripped away that isn’t relevant for binding generation. Without comments, the core header files only require ~4K lines of code and depend on Python (2.7 or 3.x, or PyPy2.7 >= 5.7) and the C++ standard library. This compact implementation was possible thanks to some of the new C++11 language features (specifically: tuples, lambda functions and variadic templates). Since its creation, this library has grown beyond Boost.Python in many ways, leading to dramatically simpler binding code in many common situations.
* Andy From: Cplusplus-sig <cplusplus-sig-bounces+jandyman.voelkel=gmail....@python.org> on behalf of Torsten Knüppel <brumfes...@gmx.net> Reply-To: Development of Python/C++ integration <cplusplus-sig@python.org> Date: Wednesday, April 29, 2020 at 8:15 AM To: Development of Python/C++ integration <cplusplus-sig@python.org> Subject: Re: [C++-sig] Re: Compiling boost python Hi Andy, thanks for the quick reply. I only came across pybind recently when I was encountering some dependency issues with boost.python<http://boost.python> and looked for an alternative. It looks really useful, but I hesitated to make the switch - but I think I will do it sooner or later. Maybe one question regarding pybind - is it easy to create bindings for different Python versions? Am 29.04.20, 16:42 schrieb Andrew Voelkel <jandyman.voel...@gmail.com>: Have you considered using pybind11? It’s the same basic idea as boost.python, but it is cleaner, much better supported and documented, and has a large user community. I just discovered this lately, have been using it, and I’m thrilled with it. The only catch is that you need to be compiling with at least a C++11 compiler, but that is a pretty low bar these days. * Andy From: Cplusplus-sig <cplusplus-sig-bounces+jandyman.voelkel=gmail....@python.org> on behalf of Torsten Knüppel <brumfes...@gmx.net> Reply-To: Development of Python/C++ integration <cplusplus-sig@python.org> Date: Wednesday, April 29, 2020 at 7:34 AM To: "cplusplus-sig@python.org" <cplusplus-sig@python.org> Subject: [C++-sig] Compiling boost python Dear all, I'm trying to compile boost.python with a version of python, that I've downloaded and built myself. Is the "No-install quickstart"-page (https://www.boost.org/doc/libs/1_73_0/libs/python/doc/html/building/no_install_quickstart.html) still updated, because some of the links are broken and I honestly don't understand what is going on there. Some questions that I have: - What is the bjam "build driver"? When I go to Section 5 of the boost Getting Started page - they mention something about an easy install option and another one for custom binaries. The entire page mentions neither bjam, nor "build driver". - I manage to build boost, by first running the bootstrap script and then calling b2 - if I select e.g. graph - it is built and copied into the correct directory, that I've specified. However, it doesn't work with my own Python folder. I wrote a small script to automate all steps: #wget https://dl.bintray.com/boostorg/release/1.73.0/source/boost_1_73_0.tar.gz #tar -xvf boost_1_73_0.tar.gz cd boost_1_73_0 ./bootstrap.sh --prefix=../build_boost --with-libraries=python -with-python-root=../Python-3.6.10 --with-python-version=3.6 ./b2 install -d+2 echo "using python : : ../Python-3.6.10/python ;" > user-config.jam My folder structure is as follows: buildBoost.sh (the script above) /Python-3.6.10 (contains the python source code and binaries that I've build myself) /boost_1_73_0 (boost source code as downloaded by the script) /build_boost (output folder as specified by prefix) When do I need to write this user-config.jam file? What are the compilation scripts looking for - can this process be debugged? I also have boost installed via apt - now I think that everytime I call b2 or bjam it uses the global versions of these programs, instead of the ones contained in the boost-directory I'm compiling - is that an issue? Thanks in advance. torsten _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org https://mail.python.org/mailman/listinfo/cplusplus-sig
_______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org https://mail.python.org/mailman/listinfo/cplusplus-sig