Installation, Dependencies and Compatibility 
============================================

.. contents::
    :local:

Dependencies
^^^^^^^^^^^^

most of functionality
______________________

    + six https://pypi.python.org/pypi/six/
    + pyglet https://bitbucket.org/pyglet/pyglet

particles support
_________________

    + numpy www.numpy.org

audio and video support by AVbin
________________________________

    + AVbin http://avbin.github.io/AVbin/Home/Home.html
    
audio support by SDL
____________________

    + in Windows, pygame http://www.pygame.org
    + in unix-like OSes libraries sdl 1.2 and sdl-mixer 1.2; in debian/ubuntu their packages are libsdl1.2 and libsdl-mixer1.2
    + in Mac, theres no confirmed info. Should be similar to unix.


What explicit dependencies are declared in the setup.py ?
six and pyglet


Compatibility
^^^^^^^^^^^^^

Compatibility notes at the time of writing, August 2017

    + python : cocos needs python 2.6, 2.7 or 3.3+
      The cocos codebase has direct support for 2.x and 3.x, so no need to run 2to3  

    + pyglet : pyglet 1.2 or better (1.3+ recomended)      

Installing
^^^^^^^^^^

Have a modern setuptools or pip installed.

While::

    easy_install cocos2d

or::

    pip install cocos2d

should work, you will miss the docs and code samples. Its is therefore recommended to

    + install six and pyglet
    + download cocos2d-0.6.5.zip from https://pypi.python.org/pypi/cocos2d/
    + decompress to a convenient location, the top dir will be cocos2d-0.6.5
    + the html docs will be in cocos2d-0.6.5/doc/html
    + useful code samples will be in cocos2d-0.6.5/test, cocos2d-0.6.5/samples, cocos2d-0.6.5/utest
    + install by::

        cd cocos2d-0.6.5
        setup.py install

      or alternatively by pointing that directory from a .pth or PYTHONPATH
    + All of cocos should be usable now, with the possible exceptions

        - cocos particles
        - SDL audio backend
        - AVBin (pyglet) audio-video backend 

If you want to add these, look at the dependencies section.

Using PYTHONPATH or .pth
^^^^^^^^^^^^^^^^^^^^^^^^

It is safe to point a checkout of cocos from a .pth or PYTHONPATH both
in python 2.x and 3.x; the same checkout can be pointed at the same time from both pythons.

The same is valid for pyglet vs 1.3+ (but note that at pyglet 1.3.0rc1 you will need to also 
install the pakage 'future')

Pyglet with version < 1.3 does python 3 compatibility by running 2to3 at install time, so while
a pyglet checkout can be pointed from a .pth or PYTHONPATH in python 2.x,
that will not work for python 3.
