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

</code></pre>

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?
Thanks

Comments

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