You are here

Problem running Pyrosetta on RedHat/CentOS 5

8 posts / 0 new
Last post
Problem running Pyrosetta on RedHat/CentOS 5
#1

Hi,

I'm trying to run PyRosetta on the lab's cluster:
CentOS release 5.2 (Final)
Linux version 2.6.18-92.el5 (mockbuild@builder10.centos.org) (gcc version 4.1.2 20071124 (Red Hat 4.1.2-42))
The architecture is x86_64.

I get this error when trying to import libraries for both PyRosetta Scientific Linux, and Ubuntu (Both 64bit distributions) (Version 2

Python 2.6.4 (r264:75706, Dec 10 2009, 10:49:23)
Type "copyright", "credits" or "license" for more information.

IPython 0.10 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object'. ?object also works, ?? prints more.

In [1]: from rosetta import *
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)

/common/PyRosetta/Program/PyRosetta-r40251.linux.64Bit/ in ()

/common/PyRosetta/Program/PyRosetta-r40251.linux.64Bit/rosetta/__init__.py in ()
9
10 # double-checked right order...

---> 11 import utility
12 import utility.excn
13

/common/PyRosetta/Program/PyRosetta-r40251.linux.64Bit/rosetta/utility/__init__.py in ()
----> 1 from __utility_all_at_once_ import *

ImportError: rosetta/utility/__utility_all_at_once_.so: wrong ELF class: ELFCLASS64

Using the 32-bit Ubuntu distribution I get this Error:
ImportError: rosetta/libboost_python.so.1.42.0: undefined symbol: PyUnicodeUCS4_AsUTF8String

Python2.5 is installed.

Replacing libboost_python.so.1.42.0 in /rosetta with the one from the forum (http://www.rosettacommons.org/node/2307), creates this error:
libboost_python.so.1.42.0: undefined symbol: PyUnicodeUCS4_FromEncodedObject

Is there a newer libbost I should try before asking the admin to rebuild python? Should I try building PyRosetta from source?

-J

Post Situation: 
Fri, 2011-06-17 10:06
jadolfbr

The first error (ImportError: rosetta/utility/__utility_all_at_once_.so: wrong ELF class: ELFCLASS64) is basically telling you that trying to run 32bit code on 64bit OS - that obviously would not work. Could it be that headnode of your cluster running the in 64Bit mode but working nodes are 32bit? Try to run 'echo $HOSTTYPE' on that machine and see what you will get.

Sat, 2011-06-18 07:47
Sergey

The OS is 64bit, the PyRosetta build is 64 bit. Working nodes are 64 bit as well….

Sat, 2011-06-18 20:41
jadolfbr

What about the Python, could it be that build of that Python is 32bit? Because otherwise error 'wrong ELF class: ELFCLASS64' does not make any sense...

Sun, 2011-06-19 12:42
Sergey

Python build is 64bit; both 2.5 and 2.6.4. Makes no sense at all....everything is 64bit! The last thing that we built on it was MPI NAMD, also 64bit....

Mon, 2011-06-20 13:06
jadolfbr

Could you please post output of 'python -v'?

Tue, 2011-06-21 17:39
Sergey

Thanks for the help Sergey.

[jadolfbr@hpccluster ~]$ python -V
Python 2.5.6

After some digging around, it looks like the error was due to pointing of python to a 32bit build through a local bashrc. So, that error is gone.

However, now I get this:

Python 2.5.6 (r256:88840, Jun 16 2011, 08:26:50)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from rosetta import *
>>> rosetta.init()
Found minirosetta_database at /common/madsci/PyRosetta/Program/PyRosetta-r40251.linux.64Bit/minirosetta_database, using it...
Traceback (most recent call last):
File "", line 1, in
File "/common/madsci/PyRosetta/Program/PyRosetta-r40251.linux.64Bit/rosetta/__init__.py", line 523, in init
v.extend(args)
File "/common/madsci/PyRosetta/Program/PyRosetta-r40251.linux.64Bit/rosetta/__init__.py", line 105, in extendfunc
for i in othervec: vec.append(i)
Boost.Python.ArgumentError: Python argument types in
vector1_string.append(vector1_string, str)
did not match C++ signature:
append(utility::vector1 > {lvalue}, std::string)

Thu, 2011-06-23 09:20
jadolfbr

So it was 32bit - great, it make sense now!

Now, on your last error: You trying to run it with Python 2.5.* - right? - That will not work because it builded for Python 2.6. You can try either build Python 2.6 on that platform or rebuild PyRosetta for Python 2.5.

Wed, 2011-08-17 14:35
Sergey