upgrade to sage 8.6
When running a sage file on the command line i get an error since i upgraded sage to SageMath version 8.6, Release Date: 2019-01-15, on my debian box.
> cat /etc/debian_version
buster/sid
this used to work before, when i used the sagemath package from stable, but now i get a python traceback:
> sage Fehlerrechnung-2019-02-19-085035.sage
Traceback (most recent call last):
File "Fehlerrechnung-2019-02-19-085035.sage.py", line 3, in <module>
from sage.all_cmdline import * # import sage library
File "/usr/lib/python2.7/dist-packages/sage/all_cmdline.py", line 26, in <module>
from sage.all import *
File "/usr/lib/python2.7/dist-packages/sage/all.py", line 83, in <module>
from sage.misc.all import * # takes a while
File "/usr/lib/python2.7/dist-packages/sage/misc/all.py", line 84, in <module>
from .functional import (additive_order,
File "/usr/lib/python2.7/dist-packages/sage/misc/functional.py", line 27, in <module>
from sage.rings.complex_double import CDF
File "sage/rings/complex_double.pyx", line 1, in init sage.rings.complex_double (build/cythonized/sage/rings/complex_double.c:22356)
File "sage/rings/ring.pyx", line 1, in init sage.rings.ring (build/cythonized/sage/rings/ring.c:22311)
File "sage/structure/parent_gens.pyx", line 1, in init sage.structure.parent_gens (build/cythonized/sage/structure/parent_gens.c:5388)
File "sage/structure/parent_base.pyx", line 1, in init sage.structure.parent_base (build/cythonized/sage/structure/parent_base.c:2543)
File "sage/structure/parent_old.pyx", line 1, in init sage.structure.parent_old (build/cythonized/sage/structure/parent_old.c:8649)
File "sage/structure/parent.pyx", line 1, in init sage.structure.parent (build/cythonized/sage/structure/parent.c:27339)
File "sage/structure/category_object.pyx", line 62, in init sage.structure.category_object (build/cythonized/sage/structure/category_object.c:9657)
File "/usr/lib/python2.7/dist-packages/sage/categories/category.py", line 110, in <module>
from sage.misc.unknown import Unknown
File "/usr/lib/python2.7/dist-packages/sage/misc/unknown.py", line 11, in <module>
from sage.structure.unique_representation import UniqueRepresentation
File "/usr/lib/python2.7/dist-packages/sage/structure/unique_representation.py", line 570, in <module>
class CachedRepresentation(six.with_metaclass(ClasscallMetaclass)):
File "/usr/local/lib/python2.7/dist-packages/six.py", line 809, in with_metaclass
return type.__new__(metaclass, 'temporary_class', (), {})
TypeError: type.__new__(metaclass) is not safe, use sage.misc.classcall_metaclass.ClasscallMetaclass.__new__()
the file in question is harmless enough:
> head -n 20 Fehlerrechnung-2019-02-19-085035.sage.py
# This file was *autogenerated* from the file Fehlerrechnung-2019-02-19-085035.sage
from sage.all_cmdline import * # import sage library
_sage_const_2 = Integer(2); _sage_const_1 = Integer(1); _sage_const_4 = Integer(4); _sage_const_8 = Integer(8); _sage_const_40 = Integer(40); _sage_const_p999 = RealNumber('.999'); _sage_const_21p75 = RealNumber('21.75'); _sage_const_p25 = RealNumber('.25'); _sage_const_0p2 = RealNumber('0.2'); _sage_const_p05 = RealNumber('.05'); _sage_const_0p001 = RealNumber('0.001'); _sage_const_3p5 = RealNumber('3.5'); _sage_const_0p075 = RealNumber('0.075'); _sage_const_0p99 = RealNumber('0.99'); _sage_const_p075 = RealNumber('.075'); _sage_const_p1 = RealNumber('.1'); _sage_const_8p854187817en12 = RealNumber('8.854187817e-12'); _sage_const_75 = Integer(75); _sage_const_77 = Integer(77); _sage_const_76 = Integer(76); _sage_const_1p001 = RealNumber('1.001'); _sage_const_0p0001 = RealNumber('0.0001')
x,d_e, e_m, e_s, v_ges, U =var('x d_e e_m e_s v_ges U')
d_k = var('d_k', latex_name=r'\varDelta z_{dc}')
d_m = var('d_m', latex_name=r'\varDelta z_{ds}')
#========= dielectric constants ==================================
e_0 = var('e_0', latex_name=r'\varepsilon_0')
#sediment
e_s = var('e_s', latex_name=r'\varepsilon_s')
# seawater
e_m = var('e_m', latex_name=r'\varepsilon_m')
e_Ersatz = var('e_Ersatz', latex_name=r'\varepsilon_{Ersatz}')
e_Ersatz = d_k * ( (e_m/d_m) + (e_s/(d_k-d_m) ) )
show( SR.symbol('e_Ersatz') == e_Ersatz)
#latex(SR.symbol('e_Ersatz') == e_Ersatz)
how can i fix this? is it a debian problem? the debian bug tracker does not know about it: https://bugs.debian.org/cgi-bin/pkgre...
How did you install Sagemath? Did you compile it yourself? Is it a precompiled binary? Did you install the debian package
sagemath
? Looking at your traceback it looks like the last option. Though it is very strange as it seems that you have two incompatible version of Sage installed and interacting... You should describe precisely your settings and how did you "upgrade" sagemath.I changed my debian repository from stable to testing and did a apt update; apt update. in the process sagemath was upgraded, too, along with a many other packages.
The rest of the system works (as far as I can tell).
my settings for what? a debian system consists of many settings. i do keep most of them to their default, though. can you tell which debian package might be to at its wrong (old?) version? i could give it a nudge. I can find out which package contains which files, if that helps. I reinstalled now sagemath-common, which contained all the files mentioned under sage in the traceback, but the error remains.
What is also strange is that what you use for a
.sage
file is something that was actually produced by the sage preparser to transform a sage input into python input. Does sage starts normally? Could you try to rename your.sage
to.py
and try again?sure:
is this what you expected?
My bad you did not obtain this file by running the preparser. You took an output from the preparser (as can be seen on the first line) and add some sagemath code to it. Remove the lines in your file from the first line up to the beginning of your code, that is
Then try again.