Released piger 0.3.2

I released the first version of Piger on Github after moving from sourceforge.net

This new release is pretty much the same as the previous one just brought to the 21st century …

The changes are

  1. Python 3.5.1
  2. Python is not required on the host machine, (something that was causing a break before!)
  3. Lua 5.2
  4. x64 or x86 build, (not for memory reasons, but for env. variable reasons).
  5. Moved from Sourceforge.net, (I added a readme.md to redirect to github). Please Google for some well documented reasons to move away from them…

Please try it and tell me if you see something cool that should be added.

I am also looking for cool scripts to be added to my list, so please, send them my way!

Embed Python in your C++ application without Python installed on guest machine

For my Piger application, I wanted my C++ app to parse Python scripts but I quickly became aware of the fact that the user must have Python installed on their machine, not only that they needed the same version as mine, (version 3.5).

The normal call would be something like…

#include <Python.h>
...
// This will cause an error if the user does not have the same version of Python as the one we want.
// or if they do not have Python installed at all.
Py_Initialize();
...

But that throws an error when the user does not have Python installed.
And if they have an older version installed, it _might_ work, but the scripts might not work as expected.

The solution is to embed the Python you want to run in your app.

  1. Go to the Python website and download the Embeddable zip file for your app, (x64 or x86)
  2. Extract the python35.zip located inside that zip file
  3. Copy it somewhere where it can be referenced.
  4. Add the code below.
#include <Python.h>
...    
std::wstring exe_dir = L"\\exe\\path";
std::wstring python_path;
python_path += exe_dir + L"python35.zip";
Py_SetPath(python_path.c_str());

// Now we can call Initialize
Py_Initialize();
...

Now your app will work using version Python 3.5.1