[Paraview] undefined symbol: PyUnicodeUCS2_AsEncodedString

Fabian Wein fabian.wein at fau.de
Fri Feb 2 10:44:45 EST 2018


I build latest head of paraview-superbuild with Python enabled and USE_SYSTEM_PYTHON=OFF on a openSUSE Tumbleweed system

I get the following error
Scanning dependencies of target CinemaPython
[  2%] Copying files for Python package 'cinema_python'
[  2%] Compiling Python package 'cinema_python'
Traceback (most recent call last):
   File "/usr/lib64/python2.7/runpy.py", line 174, in _run_module_as_main
[  2%] Building CXX object VTK/ThirdParty/xdmf2/vtkxdmf2/libsrc/CMakeFiles/vtkxdmf2.dir/XdmfHeavyData.cxx.o
[  2%] Building CXX object ThirdParty/protobuf/vtkprotobuf/src/CMakeFiles/protoc_compiler.dir/google/protobuf/stubs/strutil.cc.o
     "__main__", fname, loader, pkg_name)
   File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code
     exec code in run_globals
   File "/usr/lib64/python2.7/compileall.py", line 16, in <module>
     import struct
   File "/usr/lib64/python2.7/struct.py", line 1, in <module>
     from _struct import *
ImportError: /home/fwein/code/cfs_paraview/build_python/build/install/lib64/python2.7/lib-dynload/_struct.so: undefined symbol: PyUnicodeUCS2_AsEncodedString
gmake[8]: *** [ThirdParty/cinema/CMakeFiles/CinemaPython.dir/build.make:61: ThirdParty/cinema/cinema_python.build-complete] Error 1
gmake[7]: *** [CMakeFiles/Makefile2:1192: ThirdParty/cinema/CMakeFiles/CinemaPython.dir/all] Error 2
gmake[7]: *** Waiting for unfinished jobs....

To my knowledge one need to decide if Python is compiled with 16 or 32 bit encoding,

on my system I have 32 bit:

/usr/bin/python2
Python 2.7.14 (default, Oct 12 2017, 15:50:02) [GCC] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.maxunicode)
1114111

When I try the Python built from PV, it has 16 bits:

/home/fwein/code/cfs_paraview/build_python/build/superbuild/python/build/python
Python 2.7.14 (default, Feb  2 2018, 15:33:16)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.maxunicode)
65535

So the mixing from own built python and system python makes problems.

Is this mixing a bug?

Currently, I don't need python in PV, and for my colleague SYSTEM_PYTHON worked. So just to let you know.

BTW, what is the status with python3?

Fabian


More information about the ParaView mailing list