I followed the installation instructions for conda
<http://doc.sagemath.org/html/en/installation/conda.html> with both
python=3.6 (the most recent version that could install sage without
conflicts) and then python=2.7 (the one specifically cited in the
instructions) on macOS 10.13.6, using miniconda3.7. Both complete
installation happily, but sage immediately dies in both environment.s
I have never used Sage before, so I have no Sage configuration, and I had
no input history during the session because I literally just typed `sage`
on the command line and it failed. I use conda frequently, and don't
usually
have problems, so I doubt that it's anything very specific to my setup.
Both 3.6 and 2.7 fail in the same way: there's a missing symbol from some
dylib. The symbol is
__ZNSt3__16vectorIN5GiNaC2exENS_9allocatorIS2_EEE10deallocateEv
which demangles to
std::__1::vector<GiNaC::ex, std::__1::allocator<GiNaC::ex>
>::deallocate()
So I guess that's not getting included in lib, somehow. The full report
for 2.7 is attached — though the 3.6 report is essentially identical.
I've searched through every dylib that conda installs in envs/sage/lib, and
the only similar symbol I find is
__ZNSt3__16vectorIN5GiNaC2exENS_9allocatorIS2_EEE13__vdeallocateEv
which is in libpynac.dylib -> libpynac.18.dylib, and demangles to
std::__1::vector<GiNaC::ex, std::__1::allocator<GiNaC::ex>
>::__vdeallocate()
I wonder if it's related to https://github.com/pynac/pynac/issues/239.
I appreciate any help you can give me. Thanks!
--
You received this message because you are subscribed to the Google Groups
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/sage-support/4bc2fcb7-7398-402e-be7f-e948f6efb31f%40googlegroups.com.
***************************************************************************
IPython post-mortem report
{'commit_hash': u'033ab93c7',
'commit_source': 'installation',
'default_encoding': 'UTF-8',
'ipython_path':
'/Users/myusername/.continuum/miniconda3.7/envs/sage27/lib/python2.7/site-packages/IPython',
'ipython_version': '5.8.0',
'os_name': 'posix',
'platform': 'Darwin-17.7.0-x86_64-i386-64bit',
'sys_executable':
'/Users/myusername/.continuum/miniconda3.7/envs/sage27/bin/sage-python23',
'sys_platform': 'darwin',
'sys_version': '2.7.15 | packaged by conda-forge | (default, Jul 2 2019,
00:42:22) \n[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)]'}
***************************************************************************
***************************************************************************
Crash traceback:
---------------------------------------------------------------------------
---------------------------------------------------------------------------
ImportErrorPython 2.7.15:
/Users/myusername/.continuum/miniconda3.7/envs/sage27/bin/sage-python23
Tue Nov 19 10:34:11 2019
A problem occurred executing Python code. Here is the sequence of function
calls leading up to the error, with the most recent (innermost) call last.
/Users/myusername/.continuum/miniconda3.7/envs/sage27/bin/sage-ipython in
<module>()
1 #!/usr/bin/env sage-python23
2 # -*- coding: utf-8 -*-
3 """
4 Sage IPython startup script.
5 """
6
7 # Display startup banner. Do this before anything else to give the user
8 # early feedback that Sage is starting.
9 from sage.misc.banner import banner
10 banner()
11
12 from sage.repl.interpreter import SageTerminalApp
13
14 app = SageTerminalApp.instance()
---> 15 app.initialize()
global app.initialize = <bound method SageTerminalApp.initialize of
<sage.repl.interpreter.SageTerminalApp object at 0x104da9190>>
16 app.start()
</Users/myusername/.continuum/miniconda3.7/envs/sage27/lib/python2.7/site-packages/decorator.pyc:decorator-gen-110>
in initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None)
/Users/myusername/.continuum/miniconda3.7/envs/sage27/lib/python2.7/site-packages/traitlets/config/application.pyc
in catch_config_error(method=<function initialize>,
app=<sage.repl.interpreter.SageTerminalApp object>, *args=(None,), **kwargs={})
72 TRAITLETS_APPLICATION_RAISE_CONFIG_FILE_ERROR = False
73 else:
74 raise ValueError("Unsupported value for environment variable:
'TRAITLETS_APPLICATION_RAISE_CONFIG_FILE_ERROR' is set to '%s' which is none of
{'0', '1', 'false', 'true', ''}."% _envvar )
75
76
77 @decorator
78 def catch_config_error(method, app, *args, **kwargs):
79 """Method decorator for catching invalid config
(Trait/ArgumentErrors) during init.
80
81 On a TraitError (generally caused by bad config), this will print
the trait's
82 message, and exit the app.
83
84 For use on init methods, to prevent invoking excepthook on invalid
input.
85 """
86 try:
---> 87 return method(app, *args, **kwargs)
method = <function initialize at 0x105e10aa0>
app = <sage.repl.interpreter.SageTerminalApp object at 0x104da9190>
args = (None,)
kwargs = {}
88 except (TraitError, ArgumentError) as e:
89 app.print_help()
90 app.log.fatal("Bad config encountered during initialization:")
91 app.log.fatal(str(e))
92 app.log.debug("Config at the time: %s", app.config)
93 app.exit(1)
94
95
96 class ApplicationError(Exception):
97 pass
98
99
100 class LevelFormatter(logging.Formatter):
101 """Formatter with additional `highlevel` record
102
/Users/myusername/.continuum/miniconda3.7/envs/sage27/lib/python2.7/site-packages/IPython/terminal/ipapp.pyc
in initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None)
301
302 return super(TerminalIPythonApp, self).parse_command_line(argv)
303
304 @catch_config_error
305 def initialize(self, argv=None):
306 """Do actions after construct, but before starting the app."""
307 super(TerminalIPythonApp, self).initialize(argv)
308 if self.subapp is not None:
309 # don't bother initializing further, starting subapp
310 return
311 # print self.extra_args
312 if self.extra_args and not self.something_to_run:
313 self.file_to_run = self.extra_args[0]
314 self.init_path()
315 # create the shell
--> 316 self.init_shell()
self.init_shell = <bound method SageTerminalApp.init_shell of
<sage.repl.interpreter.SageTerminalApp object at 0x104da9190>>
317 # and draw the banner
318 self.init_banner()
319 # Now a variety of things that happen after the banner is
printed.
320 self.init_gui_pylab()
321 self.init_extensions()
322 self.init_code()
323
324 def init_shell(self):
325 """initialize the InteractiveShell instance"""
326 # Create an InteractiveShell instance.
327 # shell.display_banner should always be False for the terminal
328 # based app, because we call shell.show_banner() by hand below
329 # so the banner shows *before* all extension loading stuff.
330 self.shell = self.interactive_shell_class.instance(parent=self,
331 profile_dir=self.profile_dir,
/Users/myusername/.continuum/miniconda3.7/envs/sage27/lib/python2.7/site-packages/sage/repl/interpreter.pyc
in init_shell(self=<sage.repl.interpreter.SageTerminalApp object>)
772 self.shell.has_sage_extensions = SAGE_EXTENSION in
self.extensions
773
774 # Load the %lprun extension if available
775 try:
776 import line_profiler
777 except ImportError:
778 pass
779 else:
780 self.extensions.append('line_profiler')
781
782 if self.shell.has_sage_extensions:
783 self.extensions.remove(SAGE_EXTENSION)
784
785 # load sage extension here to get a crash if
786 # something is wrong with the sage library
--> 787 self.shell.extension_manager.load_extension(SAGE_EXTENSION)
self.shell.extension_manager.load_extension = <bound method
ExtensionManager.load_extension of <IPython.core.extensions.ExtensionManager
object at 0x1070b6190>>
global SAGE_EXTENSION = 'sage'
788
789
/Users/myusername/.continuum/miniconda3.7/envs/sage27/lib/python2.7/site-packages/IPython/core/extensions.pyc
in load_extension(self=<IPython.core.extensions.ExtensionManager object>,
module_str='sage')
70
71 Returns the string "already loaded" if the extension is already
loaded,
72 "no load function" if the module doesn't have a
load_ipython_extension
73 function, or None if it succeeded.
74 """
75 if module_str in self.loaded:
76 return "already loaded"
77
78 from IPython.utils.syspathcontext import prepended_to_syspath
79
80 with self.shell.builtin_trap:
81 if module_str not in sys.modules:
82 with prepended_to_syspath(self.ipython_extension_dir):
83 __import__(module_str)
84 mod = sys.modules[module_str]
---> 85 if self._call_load_ipython_extension(mod):
self._call_load_ipython_extension = <bound method
ExtensionManager._call_load_ipython_extension of
<IPython.core.extensions.ExtensionManager object at 0x1070b6190>>
mod = <module 'sage' from
'/Users/myusername/.continuum/miniconda3.7/envs/sage27/lib/python2.7/site-packages/sage/__init__.pyc'>
86 self.loaded.add(module_str)
87 else:
88 return "no load function"
89
90 def unload_extension(self, module_str):
91 """Unload an IPython extension by its module name.
92
93 This function looks up the extension's name in ``sys.modules``
and
94 simply calls ``mod.unload_ipython_extension(self)``.
95
96 Returns the string "no unload function" if the extension
doesn't define
97 a function to unload itself, "not loaded" if the extension
isn't loaded,
98 otherwise None.
99 """
100 if module_str not in self.loaded:
/Users/myusername/.continuum/miniconda3.7/envs/sage27/lib/python2.7/site-packages/IPython/core/extensions.pyc
in _call_load_ipython_extension(self=<IPython.core.extensions.ExtensionManager
object>, mod=<module 'sage' from
'/Users/myusername/.continuum/min...7/lib/python2.7/site-packages/sage/__init__.pyc'>)
117 """
118 from IPython.utils.syspathcontext import prepended_to_syspath
119
120 if (module_str in self.loaded) and (module_str in sys.modules):
121 self.unload_extension(module_str)
122 mod = sys.modules[module_str]
123 with prepended_to_syspath(self.ipython_extension_dir):
124 reload(mod)
125 if self._call_load_ipython_extension(mod):
126 self.loaded.add(module_str)
127 else:
128 self.load_extension(module_str)
129
130 def _call_load_ipython_extension(self, mod):
131 if hasattr(mod, 'load_ipython_extension'):
--> 132 mod.load_ipython_extension(self.shell)
mod.load_ipython_extension = <function load_ipython_extension at
0x1049db0c8>
self.shell = <sage.repl.interpreter.SageTerminalInteractiveShell object
at 0x105de0e90>
133 return True
134
135 def _call_unload_ipython_extension(self, mod):
136 if hasattr(mod, 'unload_ipython_extension'):
137 mod.unload_ipython_extension(self.shell)
138 return True
139
140 def install_extension(self, url, filename=None):
141 """Download and install an IPython extension.
142
143 If filename is given, the file will be so named (inside the
extension
144 directory). Otherwise, the name from the URL will be used. The
file must
145 have a .py or .zip extension; otherwise, a ValueError will be
raised.
146
147 Returns the full path to the installed file.
/Users/myusername/.continuum/miniconda3.7/envs/sage27/lib/python2.7/site-packages/sage/__init__.pyc
in
load_ipython_extension(*args=(<sage.repl.interpreter.SageTerminalInteractiveShell
object>,))
1 __all__ = ['all']
2
3 # Set sage.__version__ to the current version number. This is analogous
4 # to many other Python packages.
5 from sage.version import version as __version__
6
7 # Make sure that the correct zlib library is loaded. This is needed
8 # to prevent the system zlib to be loaded instead of the Sage one.
9 # See https://trac.sagemath.org/ticket/23122
10 import zlib
11
12 # IPython calls this when starting up
13 def load_ipython_extension(*args):
14 import sage.repl.ipython_extension
---> 15 sage.repl.ipython_extension.load_ipython_extension(*args)
sage.repl.ipython_extension.load_ipython_extension = <function
load_ipython_extension at 0x107624cf8>
args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at
0x105de0e90>,)
16
17
18 # Monkey-patch inspect.isfunction() to support Cython functions.
19 def isfunction(obj):
20 """
21 Check whether something is a function.
22
23 We assume that anything which has a genuine ``__code__``
24 attribute (not using ``__getattr__`` overrides) is a function.
25 This is meant to support Cython functions.
26
27 EXAMPLES::
28
29 sage: from inspect import isfunction
30 sage: def f(): pass
31 sage: isfunction(f)
/Users/myusername/.continuum/miniconda3.7/envs/sage27/lib/python2.7/site-packages/sage/repl/ipython_extension.pyc
in wrapper(*args=(<sage.repl.interpreter.SageTerminalInteractiveShell
object>,), **kwargs={})
547 ....: if work:
548 ....: return 'foo worked'
549 ....: raise RuntimeError("foo didn't work")
550 sage: foo(False)
551 Traceback (most recent call last):
552 ...
553 RuntimeError: foo didn't work
554 sage: foo(True)
555 'foo worked'
556 sage: foo(False)
557 sage: foo(True)
558 """
559 @wraps(func)
560 def wrapper(*args, **kwargs):
561 if not wrapper.has_run:
--> 562 result = func(*args, **kwargs)
result = undefined
global func = undefined
args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at
0x105de0e90>,)
kwargs = {}
563 wrapper.has_run = True
564 return result
565 wrapper.has_run = False
566 return wrapper
567
568
569 @run_once
570 def load_ipython_extension(ip):
571 """
572 Load the extension in IPython.
573 """
574 # this modifies ip
575 SageCustomizations(shell=ip)
/Users/myusername/.continuum/miniconda3.7/envs/sage27/lib/python2.7/site-packages/sage/repl/ipython_extension.pyc
in
load_ipython_extension(ip=<sage.repl.interpreter.SageTerminalInteractiveShell
object>)
560 def wrapper(*args, **kwargs):
561 if not wrapper.has_run:
562 result = func(*args, **kwargs)
563 wrapper.has_run = True
564 return result
565 wrapper.has_run = False
566 return wrapper
567
568
569 @run_once
570 def load_ipython_extension(ip):
571 """
572 Load the extension in IPython.
573 """
574 # this modifies ip
--> 575 SageCustomizations(shell=ip)
global SageCustomizations = <class
'sage.repl.ipython_extension.SageCustomizations'>
global shell = undefined
ip = <sage.repl.interpreter.SageTerminalInteractiveShell object at
0x105de0e90>
/Users/myusername/.continuum/miniconda3.7/envs/sage27/lib/python2.7/site-packages/sage/repl/ipython_extension.pyc
in __init__(self=<sage.repl.ipython_extension.SageCustomizations object>,
shell=<sage.repl.interpreter.SageTerminalInteractiveShell object>)
418 def __init__(self, shell=None):
419 """
420 Initialize the Sage plugin.
421 """
422 self.shell = shell
423
424 self.auto_magics = SageMagics(shell)
425 self.shell.register_magics(self.auto_magics)
426
427 import sage.misc.edit_module as edit_module
428 self.shell.set_hook('editor', edit_module.edit_devel)
429
430 self.init_inspector()
431 self.init_line_transforms()
432
--> 433 import sage.all # until sage's import hell is fixed
sage.all = undefined
434
435 self.shell.verbose_quit = True
436 self.set_quit_hook()
437
438 self.register_interface_magics()
439
440 if SAGE_IMPORTALL == 'yes':
441 self.init_environment()
442
443 def register_interface_magics(self):
444 """
445 Register magics for each of the Sage interfaces
446 """
447 from sage.repl.interface_magic import InterfaceMagic
448 InterfaceMagic.register_all(self.shell)
/Users/myusername/.continuum/miniconda3.7/envs/sage27/lib/python2.7/site-packages/sage/all.py
in <module>()
84 from sage.misc.all import * # takes a while
85 from sage.typeset.all import *
86 from sage.repl.all import *
87
88 from sage.misc.sh import sh
89
90 from sage.libs.all import *
91 from sage.data_structures.all import *
92 from sage.doctest.all import *
93
94 from sage.structure.all import *
95 from sage.rings.all import *
96 from sage.arith.all import *
97 from sage.matrix.all import *
98
---> 99 from sage.symbolic.all import *
global sage.symbolic.all = undefined
100 from sage.modules.all import *
101 from sage.monoids.all import *
102 from sage.algebras.all import *
103 from sage.modular.all import *
104 from sage.sat.all import *
105 from sage.schemes.all import *
106 from sage.graphs.all import *
107 from sage.groups.all import *
108 from sage.arith.power import generic_power as power
109 from sage.databases.all import *
110 from sage.categories.all import *
111 from sage.sets.all import *
112 from sage.probability.all import *
113 from sage.interfaces.all import *
114
/Users/myusername/.continuum/miniconda3.7/envs/sage27/lib/python2.7/site-packages/sage/symbolic/all.py
in <module>()
1 from __future__ import absolute_import
2
----> 3 from sage.libs.pynac.pynac import I
global sage.libs.pynac.pynac = undefined
global I = undefined
4 i = I
5
6 from .ring import SR
7 from .constants import (pi, e, NaN, golden_ratio, log2, euler_gamma,
catalan,
8 khinchin, twinprime, mertens, glaisher)
9 from .expression import Expression, solve_diophantine, hold
10 from .callable import CallableSymbolicExpressionRing
11
12 from sage.symbolic.relation import solve, solve_mod, solve_ineq
13 from sage.symbolic.assumptions import assume, forget, assumptions,
assuming
14
15 from .units import units
/Users/myusername/.continuum/miniconda3.7/envs/sage27/lib/python2.7/site-packages/sage/symbolic/expression.pxd
in init sage.libs.pynac.pynac
(build/cythonized/sage/libs/pynac/pynac.cpp:30239)()
1 from sage.libs.pynac.pynac cimport GEx
2 from sage.structure.element cimport CommutativeRingElement
3
----> 4 cdef class Expression(CommutativeRingElement):
global cdef = undefined
global Expression = undefined
global CommutativeRingElement = undefined
5 cdef GEx _gobj
6 cpdef _add_(self, other)
7 cpdef _mul_(self, other)
8 cpdef _pow_(self, other)
9 cdef Expression coerce_in(self, z)
10 cpdef object _eval_self(self, R)
11 cpdef object _convert(self, R)
12 cpdef bint is_polynomial(self, var)
13 cpdef bint is_relational(self)
14 cpdef bint is_infinity(self)
15 cpdef bint is_positive_infinity(self)
16 cpdef bint is_negative_infinity(self)
17 cpdef object pyobject(self)
18 cpdef Expression _subs_expr(self, expr)
19 cpdef int _cmp_add(Expression left, Expression right) except -2
20 cpdef int _cmp_mul(Expression left, Expression right) except -2
21 cdef bint _rel_equal1(Expression self, Expression other) except -1
22 cdef bint _rel_equal2(Expression self, Expression other) except -1
23
24 cpdef bint is_Expression(x)
25 cdef Expression new_Expression_from_GEx(parent, GEx juice)
26 cdef Expression new_Expression_from_pyobject(parent, x)
/Users/myusername/.continuum/miniconda3.7/envs/sage27/lib/python2.7/site-packages/sage/symbolic/expression.pyx
in init sage.symbolic.expression
(build/cythonized/sage/symbolic/expression.cpp:74891)()
146 # Copyright (C) 2008 Burcin Erocal <[email protected]>
147 #
148 # This program is free software: you can redistribute it and/or modify
149 # it under the terms of the GNU General Public License as published by
150 # the Free Software Foundation, either version 2 of the License, or
151 # (at your option) any later version.
152 # http://www.gnu.org/licenses/
153
#*****************************************************************************
154 from __future__ import print_function, absolute_import
155
156 from cysignals.signals cimport sig_on, sig_off
157 from sage.ext.cplusplus cimport ccrepr, ccreadstr
158
159 from inspect import isfunction
160 import operator
--> 161 from . import ring
global ring = undefined
162 import sage.rings.integer
163 import sage.rings.rational
164
165 from cpython.object cimport Py_EQ, Py_NE, Py_LE, Py_GE, Py_LT, Py_GT
166
167 from sage.cpython.string cimport str_to_bytes
168 from sage.symbolic.comparison import mixed_order
169 from sage.symbolic.getitem cimport OperandsWrapper
170 from sage.symbolic.series cimport SymbolicSeries
171 from sage.symbolic.complexity_measures import string_length
172 from sage.symbolic.function import get_sfunction_from_serial,
SymbolicFunction
173 cimport sage.symbolic.comparison
174 from sage.rings.rational import Rational
175 from sage.misc.derivative import multi_derivative
176 from sage.misc.decorators import sage_wraps
ImportError:
dlopen(/Users/myusername/.continuum/miniconda3.7/envs/sage27/lib/python2.7/site-packages/sage/symbolic/ring.so,
2): Symbol not found:
__ZNSt3__16vectorIN5GiNaC2exENS_9allocatorIS2_EEE10deallocateEv
Referenced from:
/Users/myusername/.continuum/miniconda3.7/envs/sage27/lib/python2.7/site-packages/sage/symbolic/ring.so
Expected in:
/Users/myusername/.continuum/miniconda3.7/envs/sage27/lib/libpynac.18.dylib
in
/Users/myusername/.continuum/miniconda3.7/envs/sage27/lib/python2.7/site-packages/sage/symbolic/ring.so
***************************************************************************
History of session input:
*** Last line of input (may not be in above history):