Skip to main content

Shiboken generates bindings for C++ libraries using CPython source code

Project description

Introduction

Shiboken generates bindings for C++ libraries using CPython source code.

The Shiboken documentation is hosted at http://pyside.github.io/docs/shiboken/.

The Api Extractor documentation is hosted at http://pyside.github.io/docs/api-extractor/.

Installation

Installing prerequisities

Install latest pip distribution: download get-pip.py and run it using the python interpreter.

Installing Shiboken on a Windows System

To install Shiboken on Windows you can choose from the following options:

  1. Use pip to install the wheel binary packages:

    pip install --use-wheel -U Shiboken
  2. Use setuptools to install the egg binary packages:

    easy_install -U Shiboken

Installing Shiboken on a UNIX System

We do not provide binaries for UNIX System. Please read the build instructions in section Building Shiboken on a UNIX System.

Building Shiboken on a Windows System

Installing prerequisities

  1. Install Python.

  2. Install Qt 4.8 libraries for Windows VS 2008 edition when building against Python 2.6, 2.7 or 3.2. Install Qt 4.8 libraries for Windows VS 2010 edition when building against Python 3.3 or 3.4.

  3. Install Cmake.

  4. Install Windows SDK v7.0 when building against Python 2.6, 2.7 or 3.2. Install Windows SDK v7.1 when building against Python 3.3 or 3.4.

  5. Install Git.

  6. Install latest pip distribution into the Python you installed in the first step: download get-pip.py and run it using the python interpreter of your Python 2.7 installation using a command prompt:

    c:\> c:\Python27\python get-pip.py
  7. Install latest wheel distribution:

    c:\> c:\Python27\Scripts\pip install wheel

Building Shiboken distribution

  1. Download and extract Shiboken source distribution

  2. Switch to the distribution directory:

    c:\> cd Shiboken-1.2.2
  3. Build the wheel binary distribution:

    c:\> c:\Python27\python.exe setup.py bdist_wheel --qmake=c:\Qt\4.8.5\bin\qmake.exe

Building Shiboken distribution from git repository

  1. Clone Shiboken setup scripts from git repository:

    c:\> git clone https://github.com/PySide/shiboken-setup.git shiboken-setup
  2. Switch to the shiboken-setup directory:

    c:\> cd shiboken-setup
  3. Build the wheel binary distribution:

    c:\> c:\Python27\python.exe setup.py bdist_wheel --version=1.2.2 --qmake=c:\Qt\4.8.5\bin\qmake.exe
  4. To build the development version of Shiboken distribution, ignore the –version parameter:

    c:\> c:\Python27\python.exe setup.py bdist_wheel --qmake=c:\Qt\4.8.5\bin\qmake.exe

Installing Shiboken distribution

  1. After the successful build, install the distribution with pip:

    c:\> c:\Python27\Scripts\pip install --use-wheel dist\Shiboken-1.2.2-cp27-none-win32.whl

Installing Shiboken distribution into virtual Python environment

  1. Install latest virtualenv distribution:

    c:\> c:\Python27\Scripts\pip install virtualenv
  2. Use virtualenv to make a workspace:

    c:\> c:\Python27\Scripts\virtualenv --no-site-packages env
  3. Switch to the env directory:

    c:\> cd env
  4. Install the distribution with pip:

    c:\> Scripts\pip install ..\dist\Shiboken-1.2.2-cp27-none-win32.whl

Building Shiboken on a UNIX System (Ubuntu 12.04 - 14.04)

Installing prerequisities

  1. Install build dependencies:

    $ sudo apt-get install build-essential git cmake libqt4-dev python2.7-dev libxml2-dev libxslt1-dev
  2. Install latest pip distribution into the Python you installed in the first step: download get-pip.py and run it using the python interpreter of your Python 2.7 installation using a command prompt:

    $ wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py
    $ sudo python2.7 get-pip.py
  3. Install latest wheel distribution:

    $ sudo pip2.7 install wheel

Building Shiboken distribution

  1. Download Shiboken source distribution:

    $ wget https://pypi.python.org/packages/source/S/Shiboken/Shiboken-1.2.2.tar.gz
  2. Extract the source distribution:

    $ tar -xvzf Shiboken-1.2.2.tar.gz
  3. Switch to the distribution directory:

    $ cd Shiboken-1.2.2
  4. Build the wheel binary distribution:

    $ python2.7 setup.py bdist_wheel --qmake=/usr/bin/qmake-qt4
  5. Optionally you can build standalone version of distribution with embedded Qt libs:

    $ python2.7 setup.py bdist_wheel --qmake=/usr/bin/qmake-qt4 --standalone

Building Shiboken distribution from git repository

  1. Clone Shiboken setup scripts from git repository:

    $ git clone https://github.com/PySide/shiboken-setup.git shiboken-setup
  2. Switch to the shiboken-setup directory:

    $ cd shiboken-setup
  3. Build Shiboken distribution:

    $ python2.7 setup.py bdist_wheel --qmake=/usr/bin/qmake-qt4 --version=1.2.2
  4. Optionally you can build standalone version of distribution with embedded Qt libs:

    $ python2.7 setup.py bdist_wheel --qmake=/usr/bin/qmake-qt4 --version=1.2.2 --standalone
  5. To build the development version of Shiboken distribution, ignore the –version parameter:

    $ python2.7 setup.py bdist_wheel --qmake=/usr/bin/qmake-qt4

Installing Shiboken distribution

  1. After the successful build, install the distribution with pip:

    $ sudo pip2.7 install dist/Shiboken-1.2.2-cp27-none-linux-x86_64.whl
  2. Run the post-install script to finish the package configuration:

    $ sudo python2.7 shiboken_postinstall.py -install

Installing Shiboken distribution into virtual Python environment

  1. Install latest virtualenv distribution:

    $ sudo pip2.7 virtualenv
  2. Use virtualenv to make a workspace:

    $ virtualenv-2.7 --no-site-packages env
  3. Switch to the env directory:

    $ cd env
  4. Install the distribution with pip:

    $ bin/pip2.7 install ../dist/Shiboken-1.2.2-cp27-none-linux-x86_64.whl
  5. Run the post-install script to finish the package configuration:

    $ bin/python bin/shiboken_postinstall.py -install

Shiboken Setup Script command line options

Usage on Windows System

c:\> c:\Python27\python.exe setup.py [distribution_type] [options]

Usage on UNIX System

python2.7 setup.py [distribution_type] [options]

Distribution types

bdist_wheel

Create wheel binary distribution. This distribution type can be installed with pip.

bdist_egg

Create egg binary distribution. This distribution type can be installed with easy_install.

bdist_wininst

Create standalone windows installer with embedded Qt libs and development tools. This distribution type can be installed with easy_install.

install

Install package to site packages folder.

develop

Install package in development mode, such that it’s available on sys.path, yet can still be edited directly from its source folder.

sdist

Create full source distribution with included sources of Shiboken Setup Scripts and Shiboken. Can be used to build binary distribution in offline mode.

Options

--qmake

Specify the path to qmake. Useful when the qmake is not in path or more than one Qt versions are installed.

--only-package

Skip rebuilding everything and create distribution from prebuilt binaries. Before using this option first time, the full distribution build is required.

--cmake

Specify the path to cmake. Useful when the cmake is not in path.

--standalone

When enabled, all required Qt libs will be included in Shiboken distribution. This option is allways enabled on Windows System. On Linux it’s disabled by default.

--version

Specify what version of Shiboken distribution to build. This option is available only when the setup scripts are cloned from git repository.

--list-versions

List available versions of Shiboken distributions.

--ignore-git

Don’t pull sources from git repository.

--make-spec

Specify the cmake makefile generator type. Available values are msvc on Windows System and make on UNIX System.

--jobs

Specify the number of parallel build jobs

--jom

Use jom instead of nmake with msvc

--build-tests

Enable building the tests

Feedback and getting involved

Changes

1.2.2 (2014-04-24)

Complete list of changes and bug fixes

  • Remove rejection lines that cause the sample_list test to fail

  • Remove protected from samblebinding test

  • Add parsing of ‘noexcept’ keyword

  • Fix function rejections (i.e. support overloads)

  • Fix building with python 3.3 and 3.4

  • Doc: Stop requiring sphinx.ext.refcounting with Sphinx 1.2+

  • Fix for containers with ‘const’ values

  • Fix compilation issue on OS X 10.9

  • Only use fields in PyTypeObject when defining types

  • Fix buffer overrun processing macro definitions

  • Fix ‘special’ include handling

  • Fix finding container base classes

  • Refactor and improve added function resolving

  • Work around MSVC’s deficient <cmath> in libsample/transform.cpp

  • Fix description of sample/transform unit test

  • Change wrapping and indent of some code in Handler::startElement to improve consistency

  • Fix ‘%#’ substitution for # > 9

  • Improve dependencies for tests

1.2.1 (2013-08-16)

Major changes

  • Better support for more than 9 arguments to methods

  • Avoiding a segfault when getting the .name attribute on an enum value with no name

1.2.0 (2013-07-02)

Major changes

  • Install the shiboken module to site-packages

  • Fix multiple segfaults

Complete list of changes and bug fixes

  • Removed old logos from html docs

  • Add missing return on module init error

  • Don’t break -Werror=non-virtual-dtor

  • Fixing shiboken test for minimal binding test

  • Decref reference to type object

  • Fix segfault when using shiboken.delete

  • Use non-static method def for instance methods

  • Fix bug introduced when recursive_invalidate was added

  • fix build in C++11 mode

  • Prevent infinite recursion in invalidate

  • Fix possible conflict with garbage collector

  • Fix possible crash at exit

  • Fix handling of unsigned long long and provide unittests

  • Add test to illustrate issue on typedef enum

  • Use getWrapperForQObject to convert if generating for PySide

  • Allow compilation without a python shared library

  • Use parent class’s metaObject if wrapper is NULL

  • Optionally assert on free’d pointer with a valid wrapper

  • Find python3 libraries when built with pydebug enabled

  • Fix PYSIDE-108 bug and add example

  • PYSIDE-83 Fix segfault calling shiboken.dump

  • Fix and test case for bug PYSIDE-72

  • Override all functions with the same name, not just one

  • Update vector conversion

  • Add typedef examples to minimal

  • Add test files back to cmake

  • Don’t use it->second after erasing it

  • Find function modifications defined in the 2nd+ base class. Fixes bug PYSIDE-54.

  • Set a default hash function for all ObjectTypes. Fix bug PYSIDE-42.

  • Fix compilation when there is no libxslt installed on the system.

  • Fixed resolving of SOABI. SOABI is implemented on Linux, but not on Windows

  • Don’t use inline methods in dllexported classes to keep VC++ happy

  • Use SpooledTemporaryFile in 2.6+ os.tmpfile() fails on win32 if process doesn’t have admin permissions

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Shiboken-1.2.2.tar.gz (1.1 MB view hashes)

Uploaded Source

Built Distributions

Shiboken-1.2.2.win-amd64-py3.4.exe (2.7 MB view hashes)

Uploaded Source

Shiboken-1.2.2.win-amd64-py3.3.exe (2.8 MB view hashes)

Uploaded Source

Shiboken-1.2.2.win-amd64-py3.2.exe (2.9 MB view hashes)

Uploaded Source

Shiboken-1.2.2.win-amd64-py2.7.exe (2.8 MB view hashes)

Uploaded Source

Shiboken-1.2.2.win-amd64-py2.6.exe (2.9 MB view hashes)

Uploaded Source

Shiboken-1.2.2.win32-py3.4.exe (2.4 MB view hashes)

Uploaded Source

Shiboken-1.2.2.win32-py3.3.exe (2.5 MB view hashes)

Uploaded Source

Shiboken-1.2.2.win32-py3.2.exe (2.4 MB view hashes)

Uploaded Source

Shiboken-1.2.2.win32-py2.7.exe (2.3 MB view hashes)

Uploaded Source

Shiboken-1.2.2.win32-py2.6.exe (2.4 MB view hashes)

Uploaded Source

Shiboken-1.2.2-py3.4-win-amd64.egg (2.5 MB view hashes)

Uploaded Source

Shiboken-1.2.2-py3.4-win32.egg (2.2 MB view hashes)

Uploaded Source

Shiboken-1.2.2-py3.3-win-amd64.egg (2.6 MB view hashes)

Uploaded Source

Shiboken-1.2.2-py3.3-win32.egg (2.2 MB view hashes)

Uploaded Source

Shiboken-1.2.2-py3.2-win-amd64.egg (2.6 MB view hashes)

Uploaded Source

Shiboken-1.2.2-py3.2-win32.egg (2.2 MB view hashes)

Uploaded Source

Shiboken-1.2.2-py2.7-win-amd64.egg (2.6 MB view hashes)

Uploaded Source

Shiboken-1.2.2-py2.7-win32.egg (2.1 MB view hashes)

Uploaded Source

Shiboken-1.2.2-py2.6-win-amd64.egg (2.6 MB view hashes)

Uploaded Source

Shiboken-1.2.2-py2.6-win32.egg (2.2 MB view hashes)

Uploaded Source

Shiboken-1.2.2-cp34-none-win_amd64.whl (2.5 MB view hashes)

Uploaded CPython 3.4 Windows x86-64

Shiboken-1.2.2-cp34-none-win32.whl (2.2 MB view hashes)

Uploaded CPython 3.4 Windows x86

Shiboken-1.2.2-cp33-none-win_amd64.whl (2.6 MB view hashes)

Uploaded CPython 3.3 Windows x86-64

Shiboken-1.2.2-cp33-none-win32.whl (2.3 MB view hashes)

Uploaded CPython 3.3 Windows x86

Shiboken-1.2.2-cp32-none-win_amd64.whl (2.6 MB view hashes)

Uploaded CPython 3.2 Windows x86-64

Shiboken-1.2.2-cp32-none-win32.whl (2.2 MB view hashes)

Uploaded CPython 3.2 Windows x86

Shiboken-1.2.2-cp27-none-win_amd64.whl (2.6 MB view hashes)

Uploaded CPython 2.7 Windows x86-64

Shiboken-1.2.2-cp27-none-win32.whl (2.1 MB view hashes)

Uploaded CPython 2.7 Windows x86

Shiboken-1.2.2-cp26-none-win_amd64.whl (2.6 MB view hashes)

Uploaded CPython 2.6 Windows x86-64

Shiboken-1.2.2-cp26-none-win32.whl (2.2 MB view hashes)

Uploaded CPython 2.6 Windows x86

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page