Ask Your Question

jthetzel's profile - activity

2014-12-30 13:09:55 +0200 received badge  Famous Question (source)
2013-07-10 05:22:25 +0200 received badge  Notable Question (source)
2012-10-21 06:56:37 +0200 received badge  Popular Question (source)
2011-11-15 11:40:36 +0200 commented answer from sage.all import * results in libcsage.so "cannot open shared object file" error

@William Stein: Thanks for the clear explanation. My motive was to find a quick and easy way to call Sage from within R (I understand the other way round works fine) by importing the Sage modules into Jython, which I could then interface using the rJython package. Quick and easy seems not the solution this time.

2011-11-15 11:13:13 +0200 commented question from sage.all import * results in libcsage.so "cannot open shared object file" error

@John Palmieri: Thanks, this was a very helpful suggestion.

2011-11-15 10:06:33 +0200 received badge  Scholar (source)
2011-11-15 10:06:33 +0200 marked best answer from sage.all import * results in libcsage.so "cannot open shared object file" error

What you're trying to do is in no way supported and should not work. You can't import Sage into any "random python" on your system, even with the PATHs setup. For starters the version of Python differs from the one where Sage was built, which should cause trouble. But that is just the beginning. You can do this (use the Sage Python):

deep:sage wstein$ ./sage -python
Python 2.6.4 (r264:75706, Nov 10 2011, 11:56:29) 
>>> from sage.all import *
>>>

Also, Sage is likely to rely on modules not installed in your other Python. If there is any chance of what you're doing working by accident (and don't expect Sage to actually work well), this would be more likely to work:

$ sage -sh
$ /usr/bin/python
>>> import sys
>>> sys.path.append("/Users/wstein/Desktop/sage/local/lib/python/site-packages")
>>> import sage.all
...
ImportError: No module named _socket

If you have libraries in one copy of Python that you want to use with Sage, something you can try that might work is to start Sage's python and append to its sys.path the path of the other Python. I.e., do the exact opposite of what you're trying above.

2011-11-15 10:06:32 +0200 received badge  Supporter (source)
2011-11-10 18:58:33 +0200 asked a question from sage.all import * results in libcsage.so "cannot open shared object file" error

I am having a problem importing sage modules into an instance of python 2.7. I succesfully untared the release binary tarball for 64-bit Ubuntu 10.04 ( http://boxen.math.washington.edu/sage... ) into ~/sage. I can succesfully run sage with ./sage.

After opening the python console (python), I set the relevant environmental variables and system path:

import sys
import os
os.environ['LD_LIBRARY_PATH'] = '/home/jthetzel/sage/local/lib'
os.environ['SAGE_ROOT'] = '/home/jthetzel/sage'
sys.path.append("/home/jthetzel/sage/local/lib/python/site-packages")

However, the following:

from sage.all import *

Results in:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/jthetzel/sage/local/lib/python/site-packages/sage/all.py", line 63, in <module>
    from sage.ext.c_lib import _init_csage, sig_on_count
ImportError: libcsage.so: cannot open shared object file: No such file or directory

The same occurs when I try different system paths, such as /home/jthetzel/sage/local/lib or /home/jthetzel/sage .

Trying locate libcsage.so finds:

/home/jthetzel/sage/devel/sage-main/c_lib/libcsage.so
/home/jthetzel/sage/local/lib/libcsage.so

I have read elsewhere that ./sage -b might fix this error, but it does not in my case.

Could anyone help shed light on why libcsage.so can not be found? I am trying to import the sage modules into my usual python as opposed to Sage's python (./sage -python) because I am eventually trying to access Sage through R's Jython interface, rJython. I appreciate any guidance.