Cannot import graphlab

User 1191 | 1/13/2015, 4:04:38 AM

Hello, I just pip-installed the latest version of graphlab. The pip install succeeded, but importing graphlab into python is throwing the following errors:

[74]>python Python 2.7.6 (default, Jan 13 2015, 03:26:29) [GCC 4.4.1] on linux2 Type "help", "copyright", "credits" or "license" for more information.

import graphlab Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/data/local/firdaus/localinstall/lib/python2.7/site-packages/graphlab/init.py", line 7, in <module> import graphlab.connect.aws as aws File "/data/local/firdaus/localinstall/lib/python2.7/site-packages/graphlab/connect/aws/init.py", line 9, in <module> from ec2 import getcredentials, launchEC2, listinstances, setcredentials, status, terminateEC2 File "/data/local/firdaus/localinstall/lib/python2.7/site-packages/graphlab/connect/aws/ec2.py", line 17, in <module> import graphlab.connect.server as glserver File "/data/local/firdaus/localinstall/lib/python2.7/site-packages/graphlab/connect/server.py", line 6, in <module> from graphlab.cython.cyipc import PyCommClient as Client ImportError: /data/local/firdaus/localinstall/lib/python2.7/site-packages/graphlab/cython/libbasedep.so: undefined symbol: ZNSt8messagesIcE2idE

I am behind a proxy - so I was wondering if that was an issue. Also, this pip was done with the --user flag set.

This is the status of the graphlab pip install:

pip install graphlab-create --user --upgrade Requirement already up-to-date: graphlab-create in ./lib/python2.7/site-packages Requirement already up-to-date: boto==2.33.0 in ./lib/python2.7/site-packages (from graphlab-create) Requirement already up-to-date: librato-metrics==0.4.9 in ./lib/python2.7/site-packages (from graphlab-create) Requirement already up-to-date: mixpanel-py==3.1.1 in ./lib/python2.7/site-packages (from graphlab-create) Requirement already up-to-date: decorator==3.4.0 in ./lib/python2.7/site-packages (from graphlab-create) Requirement already up-to-date: tornado==3.2.1 in ./lib/python2.7/site-packages (from graphlab-create) Requirement already up-to-date: prettytable==0.7.2 in ./lib/python2.7/site-packages (from graphlab-create) Requirement already up-to-date: requests==2.3.0 in ./lib/python2.7/site-packages (from graphlab-create) Requirement already up-to-date: six in ./lib/python2.7/site-packages (from librato-metrics==0.4.9->graphlab-create) Requirement already up-to-date: backports.ssl-match-hostname in ./lib/python2.7/site-packages (from tornado==3.2.1->graphlab-create) Cleaning up...

Any pointers would be appreciated.

Thanks, -firdaus

Comments

User 1189 | 1/13/2015, 4:42:18 PM

Hi,

That's interesting. The proxy is not likely to be the issue. Has earlier versions ever worked?

I suspect it is a libc problem. What linux distribution are you using? Can I have the output of:

uname -a python --version

Thanks, Yucheng


User 1191 | 1/15/2015, 10:37:58 PM

Hi Yucheng,

This is the first time I've installed graphlab on this machine - so I don't know about earlier versions.

Regarding the distro:

uname -a Linux hsfirdaus.nje 3.4.86-pv-ts2 #1 SMP Wed Apr 9 12:58:31 GMT 2014 x86_64 GNU/Linux

python --version Python 2.7.6

libcversion glibc-2.10.1

Thanks.


User 15 | 1/19/2015, 6:39:46 PM

Hi Firdaus,

Apologies for not responding sooner.

If the 'libcversion' utility is returning the correct version of libc, then this problem is almost certainly a libc problem. GraphLab Create only supports glibc versions back to 2.11.

I've never heard of the libcversion utility though, and that is a rather old version of libc. Out of curiosity what Linux distro is this? I don't recognize the uname output.

Thanks,

Evan


User 1191 | 1/20/2015, 5:21:01 PM

This is a pretty old version of linux - Ubuntu 9.10 - Karmic.

ldd --version also returns the same version of glibc (2.10.1).

Are there any workarounds you can suggest - unfortunately I cannot upgrade the OS ... :)


User 15 | 1/20/2015, 7:25:20 PM

Wow. That's old. I don't see us officially supporting an older glibc anytime soon.

The only thing I can suggest is to create a chroot jail on the machine. If you've never heard of this, it is basically like mounting a complete filesystem of a different operating system into the filesystem on your current operating system. You enter the "jail" using the 'chroot' or 'schroot' command, and then '/' is now that folder, and you're essentially using a different operating system. I've only personally set up an older OS in the jail with the host having the newer OS, but I think it can go the other way. It may sound like a lot of work to get up and running for GraphLab Create, but I assure you that it'll probably come in handy for other things if you can't upgrade the OS. Try to choose an LTS version of at least 12.04 (don't know if we work on 10.04, and 12.04 comes with Python 2.7). You WILL need root access on the machine to do this though.

Basic instructions to set this up are here: https://help.ubuntu.com/community/BasicChroot That article links to any other link I'd give you.

Good luck!

Evan