Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Can't run Python script in Sage, error at import sage.all

I only just figured out how to run Sage in a daemon/service-like kind of state - see http://ask.sagemath.org/question/23431/running-sage-from-other-languages-with-higher-performance for the Sage script.

Now I'm trying to rewrite it to Python with Sage imports, so I can automatically start it with sage -python [PATH TO SCRIPT] as opposed to manually starting Sage and loading the script.

The fails with the following stack trace

Traceback (most recent call last):
  File "socket.py", line 1, in <module>
    import socket
  File "/var/www/lingapps/assets/sage/socket.py", line 4, in <module>
    import sage.all
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/all.py", line 54, in <module>
    from sage.env import SAGE_ROOT, SAGE_DOC, SAGE_LOCAL, DOT_SAGE, SAGE_ENV
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/env.py", line 84, in <module>
    _add_variable_or_fallback('HOSTNAME',        socket.gethostname())
AttributeError: 'module' object has no attribute 'gethostname'

This also happens when I have just a single line in the script: import sage.all.

It also fails with the following error if I just start sage -python and type import sage.all:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/all.py", line 54, in <module>
    from sage.env import SAGE_ROOT, SAGE_DOC, SAGE_LOCAL, DOT_SAGE, SAGE_ENV
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/env.py", line 20, in <module>
    import os, socket
  File "socket.py", line 6, in <module>
    import sage.calculus.predefined
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/calculus/__init__.py", line 1, in <module>
    import all
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/calculus/all.py", line 1, in <module>
    from calculus import maxima as maxima_calculus
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/calculus/calculus.py", line 400, in <module>
    from sage.rings.all import RR, Integer, CC, QQ, RealDoubleElement, algdep
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/rings/all.py", line 21, in <module>
    from ring import Ring
  File "ring.pyx", line 1, in init sage.rings.ring (sage/rings/ring.c:18156)
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/structure/__init__.py", line 1, in <module>
    import dynamic_class # allows for sage.structure.dynamic_class?
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/structure/dynamic_class.py", line 119, in <module>
    from sage.misc.cachefunc import weak_cached_function
  File "cachefunc.pyx", line 421, in init sage.misc.cachefunc (sage/misc/cachefunc.c:17825)
  File "function_mangling.pyx", line 39, in init sage.misc.function_mangling (sage/misc/function_mangling.c:3106)
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/misc/sageinspect.py", line 131, in <module>
    from sage.env import SAGE_SRC
ImportError: cannot import name SAGE_SRC

I'm following the method explained at http://www.sagenb.org/doc/static/faq/faq-usage.html (How do I import Sage into a Python script?).

I assume it has something to do with the enviroment variables, but I can't seem to find any documentation about that on the Sage website so what to do?

I'm running Sage 5.13 on Debian - not installed via apt-get, just downloaded and unpacked.

Can't run Python script in Sage, error at import sage.all

I only just figured out how to run Sage in a daemon/service-like kind of state - see http://ask.sagemath.org/question/23431/running-sage-from-other-languages-with-higher-performance for the Sage script.

Now I'm trying to rewrite it to Python with Sage imports, so I can automatically start it with sage -python [PATH TO SCRIPT]PYTHON FILE] as opposed to manually starting Sage and loading the script.

The fails with the following stack trace

Traceback (most recent call last):
  File "socket.py", line 1, in <module>
    import socket
  File "/var/www/lingapps/assets/sage/socket.py", line 4, in <module>
    import sage.all
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/all.py", line 54, in <module>
    from sage.env import SAGE_ROOT, SAGE_DOC, SAGE_LOCAL, DOT_SAGE, SAGE_ENV
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/env.py", line 84, in <module>
    _add_variable_or_fallback('HOSTNAME',        socket.gethostname())
AttributeError: 'module' object has no attribute 'gethostname'

This also happens when I have just a single line in the script: import sage.all.

It also fails with the following error if I just start sage -python and type import sage.all:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/all.py", line 54, in <module>
    from sage.env import SAGE_ROOT, SAGE_DOC, SAGE_LOCAL, DOT_SAGE, SAGE_ENV
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/env.py", line 20, in <module>
    import os, socket
  File "socket.py", line 6, in <module>
    import sage.calculus.predefined
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/calculus/__init__.py", line 1, in <module>
    import all
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/calculus/all.py", line 1, in <module>
    from calculus import maxima as maxima_calculus
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/calculus/calculus.py", line 400, in <module>
    from sage.rings.all import RR, Integer, CC, QQ, RealDoubleElement, algdep
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/rings/all.py", line 21, in <module>
    from ring import Ring
  File "ring.pyx", line 1, in init sage.rings.ring (sage/rings/ring.c:18156)
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/structure/__init__.py", line 1, in <module>
    import dynamic_class # allows for sage.structure.dynamic_class?
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/structure/dynamic_class.py", line 119, in <module>
    from sage.misc.cachefunc import weak_cached_function
  File "cachefunc.pyx", line 421, in init sage.misc.cachefunc (sage/misc/cachefunc.c:17825)
  File "function_mangling.pyx", line 39, in init sage.misc.function_mangling (sage/misc/function_mangling.c:3106)
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/misc/sageinspect.py", line 131, in <module>
    from sage.env import SAGE_SRC
ImportError: cannot import name SAGE_SRC

It doesn't work with sage [PATH TO SAGE FILE]either:

Traceback (most recent call last):
  File "socket.py", line 2, in <module>
    from sage.all_cmdline import *   # import sage library
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/all_cmdline.py", line 18, in <module>
    from sage.all import *
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/all.py", line 54, in <module>
    from sage.env import SAGE_ROOT, SAGE_DOC, SAGE_LOCAL, DOT_SAGE, SAGE_ENV
  File "/var/www/lingapps/assets/sage/local/lib/python2.7/site-packages/sage/env.py", line 20, in <module>
    import os, socket
  File "/var/www/lingapps/assets/sage/socket.py", line 3, in <module>
    _sage_const_102400 = Integer(102400); _sage_const_8888 = Integer(8888); _sage_const_0 = Integer(0); _sage_const_10 = Integer(10); _sage_const_1 = Integer(1)
NameError: name 'Integer' is not defined

I'm following the method explained at http://www.sagenb.org/doc/static/faq/faq-usage.html (How do I import Sage into a Python script?).

I assume it has something to do with the enviroment variables, but I can't seem to find any documentation about that on the Sage website so what to do?

I'm running Sage 5.13 on Debian - not installed via apt-get, just downloaded and unpacked.