Home - Forums - Documentation - Gallery - Bugs
Current revision (10:32, 22 August 2008) (edit) (undo)
 
(14 intermediate revisions not shown.)
Line 6: Line 6:
== SWIG ==
== SWIG ==
SWIG is a library which connects programs written in C/C++ with a variety of high-level programming languages. The CS/CEL python bindings use SWIG to generate the Python API. So you will need SWIG installed before you compile CS and CEL in order for them to create the python bindings.
SWIG is a library which connects programs written in C/C++ with a variety of high-level programming languages. The CS/CEL python bindings use SWIG to generate the Python API. So you will need SWIG installed before you compile CS and CEL in order for them to create the python bindings.
-
Tested versions of swig include 1.3.24 or 1.3.27, 1.3.28, 1.3.29.
+
Tested versions of swig include 1.3.28, 1.3.29, 1.3.31. Anything above 1.3.33 may cause the bindings to crash during runtime.
If you needed to install SWIG and/or Python, you will need to reconfigure and recompile CS and CEL.
If you needed to install SWIG and/or Python, you will need to reconfigure and recompile CS and CEL.
Line 12: Line 12:
== Check ==
== Check ==
You should check you have the following:
You should check you have the following:
-
inside cs directory: cspace.py and _cspace.pyd (or _cspace.so on unix like systems)
+
 
-
inside cel directory: blpython.dll (ot blpython.so on unix like systems) and blcelc.py
+
=== linux/macosx/mingw ===
 +
* cs:
 +
* both .py and .so files at out/<platform>/<buildmode>/bindings/python/cspace/ (if you used swig)
 +
 
 +
* cel:
 +
* blpython.dll in cel root folder.
 +
* _blcelc.so in out/<platform>/<buildmode>/bindings/python/ (if you used swig)
 +
* blcelc.py in cel root folder or cel/scripts folder (depending if you used swig or not)
 +
 
 +
=== windows/msvc ===
 +
* CS:
 +
* .py files will be at scripts/python/frozen
 +
* .pyd files are in CS root folder.
 +
 
 +
* cel:
 +
* blcelc.py in scripts/ folder.
 +
* blpython.dll and _blcelc.pyd in cel root folder.
== Test ==
== Test ==
Line 19: Line 35:
* For cs bindings: run pysimp from the crystalspace dir.
* For cs bindings: run pysimp from the crystalspace dir.
-
* For cel bindings: run start_smallgame.sh from the cel dir. Note for this the crystalspace python module (cspace.py and _cspace.*) must be in the pythonpath (setting PYTHONPATH to the CRYSTAL dir should be enough at this point).
+
* For cel bindings: run start_smallgame.sh from the cel dir. Note for this the crystalspace python module (out/<platform>/<buildmode>/bindings/python/cspace/) must be in the pythonpath (setting PYTHONPATH to that dir should be enough at this point, or else just run "jam install_bindings").
 +
 
 +
== Setting environment variables correctly ==
 +
 
 +
You should check that you have correctly set the CRYSTAL and CEL environment variables as explained in the manual, and then, you should check the python modules (the ones from the Check stage above) are in pythonpath. This is done by setting the PYTHONPATH environment variable to point to the dirs where these are located.
 +
 
 +
Note also that for statically built celstart, you'll also need to point to the zipfile so python can find the scripts
 +
 
 +
linux example '''"export PYTHONPATH=$CRYSTAL/out/<platform>/<buildmode>/bindings/python/:$CEL:$CEL/out/<platform>/<buildmode>/bindings/python"''' for linux).
 +
 
 +
windows example: set PYTHONPATH to '''E:\CS\scripts\python\frozen;E:\CS\;E:\cel;E:\cel\scripts'''
 +
 
 +
== Troubleshooting ==
 +
 
 +
=== CS python bindings take too long to compile ===
 +
 
 +
This most likely means you're running out of ram compiling the bindings. You can try closing as many apps as possible before compiling, or getting a precompiled solution. This shouldnt happen on 1.3 onwards.
 +
 
 +
=== Problems linking on linux-ppc ===
 +
 
 +
Should be fixed from 1.3 onwards.
 +
 
 +
=== Errors compiling the bindings ===
 +
 
 +
Most probably your swig generated files are not up to date due to some recent api change. You can try getting swig and reconfiguring+recompiling, or wait and update to catch the next update of the files from the server (note this can take some hours).
 +
 
 +
Also, (Using windows and WinGW to compile) if the configure script can't find swig, make sure the PATH environment variable points to the directory in which it is installed.
 +
 
 +
=== crystalspace.application.celstart: Can't load behaviour layer 'blpython' with id 'cel.behaviourlayer.python'! ===
 +
 
 +
If all else is working (ie, pysimp, python tutorials, cel smallgame), then probably you need to set the PYTHONPATH environment variable to point to your CRYSTAL and CEL python plugin locations, and possibly also to the zip file with the world (ie, like said before, on windows: right click my computer, properties Advanced tab, Environment variables button).
Back to [[PyCrystal]]
Back to [[PyCrystal]]

Current revision

These are just a few basic things you will need to ensure that you can use Python with CS and CEL.

Contents

1. First make sure you have Python installed

Python.org is a good place to get Python and find tutorials.

SWIG

SWIG is a library which connects programs written in C/C++ with a variety of high-level programming languages. The CS/CEL python bindings use SWIG to generate the Python API. So you will need SWIG installed before you compile CS and CEL in order for them to create the python bindings. Tested versions of swig include 1.3.28, 1.3.29, 1.3.31. Anything above 1.3.33 may cause the bindings to crash during runtime.

If you needed to install SWIG and/or Python, you will need to reconfigure and recompile CS and CEL.

Check

You should check you have the following:

linux/macosx/mingw

* cs:
 * both .py and .so files at out/<platform>/<buildmode>/bindings/python/cspace/ (if you used swig)
* cel:
 * blpython.dll in cel root folder.
 * _blcelc.so in out/<platform>/<buildmode>/bindings/python/ (if you used swig)
 * blcelc.py in cel root folder or cel/scripts folder (depending if you used swig or not)

windows/msvc

* CS:
 * .py files will be at scripts/python/frozen
 * .pyd files are in CS root folder.
* cel:
 * blcelc.py in scripts/ folder.
 * blpython.dll and _blcelc.pyd in cel root folder.

Test

There are several apps you can run to test the python bindings are working correctly.

  • For cs bindings: run pysimp from the crystalspace dir.
  • For cel bindings: run start_smallgame.sh from the cel dir. Note for this the crystalspace python module (out/<platform>/<buildmode>/bindings/python/cspace/) must be in the pythonpath (setting PYTHONPATH to that dir should be enough at this point, or else just run "jam install_bindings").

Setting environment variables correctly

You should check that you have correctly set the CRYSTAL and CEL environment variables as explained in the manual, and then, you should check the python modules (the ones from the Check stage above) are in pythonpath. This is done by setting the PYTHONPATH environment variable to point to the dirs where these are located.

Note also that for statically built celstart, you'll also need to point to the zipfile so python can find the scripts

linux example "export PYTHONPATH=$CRYSTAL/out/<platform>/<buildmode>/bindings/python/:$CEL:$CEL/out/<platform>/<buildmode>/bindings/python" for linux).

windows example: set PYTHONPATH to E:\CS\scripts\python\frozen;E:\CS\;E:\cel;E:\cel\scripts

Troubleshooting

CS python bindings take too long to compile

This most likely means you're running out of ram compiling the bindings. You can try closing as many apps as possible before compiling, or getting a precompiled solution. This shouldnt happen on 1.3 onwards.

Problems linking on linux-ppc

Should be fixed from 1.3 onwards.

Errors compiling the bindings

Most probably your swig generated files are not up to date due to some recent api change. You can try getting swig and reconfiguring+recompiling, or wait and update to catch the next update of the files from the server (note this can take some hours).

Also, (Using windows and WinGW to compile) if the configure script can't find swig, make sure the PATH environment variable points to the directory in which it is installed.

crystalspace.application.celstart: Can't load behaviour layer 'blpython' with id 'cel.behaviourlayer.python'!

If all else is working (ie, pysimp, python tutorials, cel smallgame), then probably you need to set the PYTHONPATH environment variable to point to your CRYSTAL and CEL python plugin locations, and possibly also to the zip file with the world (ie, like said before, on windows: right click my computer, properties Advanced tab, Environment variables button).

Back to PyCrystal

| Article | Discussion | View source | History |