From 03905043c63c42e2bd79e0d58f4ae1a7fc9d47f3 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 23 Apr 2013 13:51:20 +0000 Subject: [PATCH] minor changes to get numpy working with locally bundled python. - enable site-packages for bundled python distrobution, py3.2 had a problem where it would try to parse headers we didnt include, but its resolved now. - workaround for glitch I was having on arch-linux where lib64 would be be used for the bundled python directory when it was just a symlink. --- source/blender/python/intern/bpy_interface.c | 3 +++ source/creator/CMakeLists.txt | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c index 552df561bbd..f71ea02a510 100644 --- a/source/blender/python/intern/bpy_interface.c +++ b/source/blender/python/intern/bpy_interface.c @@ -259,12 +259,15 @@ void BPY_python_start(int argc, const char **argv) * Python doesn't expose a good way to set this. */ BLI_setenv("PYTHONIOENCODING", "utf-8:surrogateescape"); + /* Update, Py3.3 resolves attempting to parse non-existing header */ +#if 0 /* Python 3.2 now looks for '2.xx/python/include/python3.2d/pyconfig.h' to * parse from the 'sysconfig' module which is used by 'site', * so for now disable site. alternatively we could copy the file. */ if (py_path_bundle) { Py_NoSiteFlag = 1; } +#endif Py_FrozenFlag = 1; diff --git a/source/creator/CMakeLists.txt b/source/creator/CMakeLists.txt index 6455f9165ce..d5407fe38a2 100644 --- a/source/creator/CMakeLists.txt +++ b/source/creator/CMakeLists.txt @@ -423,11 +423,15 @@ if(UNIX AND NOT APPLE) # on some platforms (like openSUSE) Python is linked # to be used from lib64 folder. # determine this from Python's libraries path - if(${PYTHON_LIBPATH} MATCHES "lib64$") + # + # ugh, its possible 'lib64' is just a symlink to 'lib' which causes incorrect use of 'lib64' + get_filename_component(_pypath_real ${PYTHON_LIBPATH} REALPATH) + if(${_pypath_real} MATCHES "lib64$") set(_target_LIB "lib64") else() set(_target_LIB "lib") endif() + unset(_pypath_real) # Copy the systems python into the install directory # Scons copy in tools/Blender.py