undefined symbol: PyUnicodeUCS4_DecodeUTF8 when running on our RHEL clusters

User 1617 | 3/23/2015, 7:07:26 PM

Hello, since I am not root user, I installed GraphLab Create using the --user flag like this on our cluster:

python -m pip install --user http://static.dato.com/files/graphlab-create-1.3.0.gpu.tar.gz

When I try load graphlab, it throws an error.
<pre class="CodeBlock"><code>rcook@rzgpu2 (blockbuster-2.8.6f ): python Python 2.7.7 (default, Jun 11 2014, 13:52:18) [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2 Type "help", "copyright", "credits" or "license" for more information.

import graphlab as gl Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/g/g0/rcook/.local/lib/python2.7/site-packages/graphlab/init.py", line 33, in <module> import graphlab.connect.aws as aws File "/g/g0/rcook/.local/lib/python2.7/site-packages/graphlab/connect/aws/init.py", line 25, in <module> from ec2 import getcredentials, launchEC2, listinstances, setcredentials, status, terminateEC2 File "/g/g0/rcook/.local/lib/python2.7/site-packages/graphlab/connect/aws/ec2.py", line 33, in <module> import graphlab.connect.server as glserver File "/g/g0/rcook/.local/lib/python2.7/site-packages/graphlab/connect/server.py", line 22, in <module> from graphlab.cython.cyipc import PyCommClient as Client ImportError: /g/g0/rcook/.local/lib/python2.7/site-packages/graphlab/cython/cyipc.so: undefined symbol: PyUnicodeUCS4DecodeUTF8


I believe this indicates an incompatibility with the binaries being installed with graphlab and the libraries in my existing python install.
Is there is an alternative available to me?


User 1190 | 3/23/2015, 8:19:28 PM

Hi @wealthychef,

First of all, thanks for trying out GraphLab Create. The issue is that the python on the cluster is built with "USC-2" as its internal unicode representation, which is incompatible with GraphLab Create ("USC-4"). A similar issue is reported with other packages on stackoverflow: http://stackoverflow.com/questions/16871799/trying-to-import-a-module-undefined-symbol-pyunicodeucs4-decodeutf8

At this point, you will have to install python2.7 with "USC-4" on your cluster. Or you can try using anaconda which is easier to setup.

Thanks, Jay

User 1617 | 3/23/2015, 9:39:27 PM

I tried building python on our cluster and with the default vanilla "configure" it still gives the same error. Using the following configuration works: <blockquote class="Quote">configure --prefix=/nfs/tmp2/rcook/python-test/ --enable-shared --enable-unicode=ucs4</blockquote> Since ucs2 is the default behavior of python, I'm wondering if you would consider releasing binaries that match what most people would find in a production environment, or is there a specific reason for needing ucs4? In my case, it saves a few headaches in trying to use your software. At any rate, thanks as I am now looking at a working GraphLab Canvas window on our cluster. :smiley:

User 1190 | 4/6/2015, 6:46:16 PM

Hi @wealthychef,

I'm glad your problem is solved. Thanks for your suggestion! It is possible to release a usc2 compatible version, and we will consider your feature request.

Thanks, -jay