Skip to main content

Simple DirectMedia Layer

Project description

pycsdl2 is a low-overhead, compiled SDL2 binding for CPython. It aims to provide the familiar C API of SDL2, while offering several Pythonic features such as automatic memory management, bounds checking and exceptions.

Documentation

Documentation is hosted online at https://pycsdl2.readthedocs.org/.

The Python API is documented with Sphinx in the docs/ directory. If you have GNU Make and Sphinx installed, run the following in the docs/ directory to generate the HTML documentation in docs/_build/html/:

make html

On Windows, make.bat can be used instead of GNU Make. Run the following in the docs/ directory to generate the HTML documentation in docs/_build/html/:

.\make.bat html

The documentation can be generated in other formats as well. See the output of make help or .\make.bat help for more details.

Building

Building the source code requires the CPython header files to be installed. This may require the installation of a development package such as python3-dev in Debian. The headers are installed by default in the official Python distributions for Windows and Mac OS X.

On Windows and Mac OS X, pycsdl2 will be statically linked against the bundled SDL2 source code. As such,

On other platforms such as Linux, the system must have a C compiler installed and the SDL2 library and header files installed. This may require the installation of a development package such as libsdl2-dev on Debian. Furthermore, a working installation of sdl2-config or pkg-config must be present in the executable search paths. pycsdl2 will be dynamically linked to the SDL2 library on these platforms.

Once your system satisfies the above requirements, run the following in the root of the source directory:

python3 setup.py build

If the build is successful, pycsdl2 can be installed with:

python3 setup.py install

The above build behavior can be controlled with the environment variable PYCSDL2_LIB:

  • setting it to auto will use the default behavior. setup.py will build and link against the bundled SDL2 source code on Windows and Mac OS X, and link against the system SDL2 library on other platforms.

  • setting it to bundled will force setup.py to build and link against the bundled SDL2 source code.

  • setting it to system will force setup.py to link against the system’s SDL2 library. sdl2-config will be used to retrieve the required compile and link flags, and if it fails, pkg-config will be used instead.

  • setting it to sdl2-config or pkg-config will force setup.py to link against the system’s SDL2 library, and to only use sdl2-config or pkg-config respectively to retrieve the required compile and link flags.

Unit tests

Unit tests are implemented using the unittest standard library module. Once the pycsdl2 has been built with python3 setup.py build, you can run all tests by running the following in the root of the source directory:

python3 -mtest

You can also run an individual test suite by running the corresponding file in the test/ directory:

python3 test/testfoo.py

Understanding the source code

The source code is documented with Doxygen. If you have a working installation, simply run the following in the root of the source directory:

doxygen

The HTML documentation will be written to the apidocs/html directory.

License

Unless otherwise stated, pycsdl2 source code is licensed under the zlib license.

pycsdl2 source code contains an unmodified copy of the Simple DirectMedia Layer (SDL) version 2.0.0 source code. The source code is licensed under the zlib license.

Download files

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

Source Distribution

pycsdl2-2.0.0.0.dev5.tar.gz (3.8 MB view details)

Uploaded Source

Built Distributions

pycsdl2-2.0.0.0.dev5-cp35-cp35m-macosx_10_6_intel.whl (1.2 MB view details)

Uploaded CPython 3.5m macOS 10.6+ intel

pycsdl2-2.0.0.0.dev5-cp34-none-win_amd64.whl (685.4 kB view details)

Uploaded CPython 3.4 Windows x86-64

pycsdl2-2.0.0.0.dev5-cp34-none-win32.whl (627.2 kB view details)

Uploaded CPython 3.4 Windows x86

pycsdl2-2.0.0.0.dev5-cp34-cp34m-macosx_10_6_intel.whl (1.2 MB view details)

Uploaded CPython 3.4m macOS 10.6+ intel

File details

Details for the file pycsdl2-2.0.0.0.dev5.tar.gz.

File metadata

File hashes

Hashes for pycsdl2-2.0.0.0.dev5.tar.gz
Algorithm Hash digest
SHA256 9e19bd3a95fbfc689d361c7afd6dd0bb81fb2500cf33e0605e35c3cc0fc40cc5
MD5 84168e117b5177d087b5229239a638ec
BLAKE2b-256 0065fa7303379be7f7648dbff4374e92116b3c1c7165850a44d242c9f220fcc8

See more details on using hashes here.

File details

Details for the file pycsdl2-2.0.0.0.dev5-cp35-cp35m-macosx_10_6_intel.whl.

File metadata

File hashes

Hashes for pycsdl2-2.0.0.0.dev5-cp35-cp35m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 d5cdc2e2af7fa35203342dc87b74563176f9c6a40389b7d46eb006224e79fc75
MD5 eb195bb789496626b72ef68709b959ea
BLAKE2b-256 c1aad751b022f6df9bc39b3e9888e4b27b1558f1565b4a5da093335c0990933e

See more details on using hashes here.

File details

Details for the file pycsdl2-2.0.0.0.dev5-cp34-none-win_amd64.whl.

File metadata

File hashes

Hashes for pycsdl2-2.0.0.0.dev5-cp34-none-win_amd64.whl
Algorithm Hash digest
SHA256 0166d8e53768a52bdd9219873ec5bc012a1395eb95fb954761871464d5b9f781
MD5 cc9366dfa3251bfc38803aa1e6eea836
BLAKE2b-256 d2a4ba3159a02a355b80503e1dfb49ff1bfa33c736a53a634f18ea3c3ff444a8

See more details on using hashes here.

File details

Details for the file pycsdl2-2.0.0.0.dev5-cp34-none-win32.whl.

File metadata

File hashes

Hashes for pycsdl2-2.0.0.0.dev5-cp34-none-win32.whl
Algorithm Hash digest
SHA256 9c98cb2ac435c29138a303c61d159abef20d0515344bee9a2ac3436b18f72dc6
MD5 faf4a55f4180b40b225c2193835023f6
BLAKE2b-256 55fc8c7dfd46276b5be57f69243e9e1c0a82d330afcbead8ae25b986b54a9f6c

See more details on using hashes here.

File details

Details for the file pycsdl2-2.0.0.0.dev5-cp34-cp34m-macosx_10_6_intel.whl.

File metadata

File hashes

Hashes for pycsdl2-2.0.0.0.dev5-cp34-cp34m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 e986ac2ab267bf5c632813c16e5827772df323e6c8a47fa4731324dfca225022
MD5 f5ede57f0394ec274c917e67b77faefa
BLAKE2b-256 89851afb50ca93fc4a0c12211eef4f11aa8c2a37c5d8c8f70773a3e95de0d210

See more details on using hashes here.

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