I think the issue is a disagreement with python. The package installs fine on a clean machine. I know this isn't the wheelhouse, but how can I diagnose my python configuration for compatibility with sage. In particular, I have python 3.8.10 installed systemwide.
On Sunday, August 29, 2021 at 4:49:52 PM UTC-5 hbetx9 wrote: > The package log has the following error: > > /usr/lib/python3/dist-packages/sage/combinat/root_system/branching_rules.py:1753: > > SyntaxWarning: "is not" with a literal. Did you mean "!="? > if len(stypes) is not 2: > /usr/lib/python3/dist-packages/sage/graphs/graph_latex.py:1159: > SyntaxWarning: 'str' object is not callable; perhaps you missed a comma? > raise TypeError('%s option must be a dictionary, not %s' (name, value)) > /usr/lib/python3/dist-packages/sage/graphs/graph_latex.py:1168: > SyntaxWarning: 'str' object is not callable; perhaps you missed a comma? > raise TypeError('%s option must be a dictionary, not %s' (name, value)) > /usr/lib/python3/dist-packages/sage/graphs/graph_latex.py:1175: > SyntaxWarning: 'str' object is not callable; perhaps you missed a comma? > raise TypeError('%s option must be a dictionary, not %s' (name, value)) > /usr/lib/python3/dist-packages/sage/graphs/graph_latex.py:1182: > SyntaxWarning: 'str' object is not callable; perhaps you missed a comma? > raise TypeError('%s option must be a dictionary, not %s' (name, value)) > /usr/lib/python3/dist-packages/sage/graphs/graph_latex.py:1189: > SyntaxWarning: 'str' object is not callable; perhaps you missed a comma? > raise TypeError('%s option must be a dictionary, not %s' (name, value)) > /usr/lib/python3/dist-packages/sage/graphs/graph_latex.py:1196: > SyntaxWarning: 'str' object is not callable; perhaps you missed a comma? > raise TypeError('%s option must be a dictionary, not %s' (name, value)) > /usr/lib/python3/dist-packages/sage/graphs/graph_latex.py:1203: > SyntaxWarning: 'str' object is not callable; perhaps you missed a comma? > raise TypeError('%s option must be a dictionary, not %s' (name, value)) > > I think there is something about the way sage is trying to be installed > and python, but I'm unsure how to diagnose. Installing from source is an > option yes, but I fear it will have the same issue. > On Sunday, August 29, 2021 at 2:14:38 AM UTC-5 dim...@gmail.com wrote: > >> On Sat, Aug 28, 2021 at 10:57 PM Lance Edward Miller <lem...@uark.edu> >> wrote: >> > >> > To whom it may concern, >> > >> > I'm installing sage from the synaptic package manager on Linux Mint >> 20.1. The package is for Sage 9.0, but the app does not run. Following is >> the crash report, any advice on how to best resolve (uninstall and install >> from source?) is appreciated: >> >> This has to be reported to Linux Mint - we don't do packaging for >> particular Linux distributions, and it looks like a packaging error, >> not anything we can help with. >> You can install Sage in several other ways: >> https://doc.sagemath.org/html/en/installation/index.html >> >> > >> > >> > >> *************************************************************************** >> > >> > IPython post-mortem report >> > >> > {'commit_hash': '<not found>', >> > 'commit_source': '(none found)', >> > 'default_encoding': 'utf-8', >> > 'ipython_path': '/usr/lib/python3/dist-packages/IPython', >> > 'ipython_version': '7.13.0', >> > 'os_name': 'posix', >> > 'platform': 'Linux-5.4.0-81-generic-x86_64-with-glibc2.29', >> > 'sys_executable': '/usr/bin/python3', >> > 'sys_platform': 'linux', >> > 'sys_version': '3.8.10 (default, Jun 2 2021, 10:49:15) \n[GCC 9.4.0]'} >> > >> > >> *************************************************************************** >> > >> > >> > >> > >> *************************************************************************** >> > >> > Crash traceback: >> > >> > >> --------------------------------------------------------------------------- >> > >> --------------------------------------------------------------------------- >> > ImportError Python 3.8.10: /usr/bin/python3 >> > Sat Aug 28 16:48:31 2021 >> > 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. >> > /usr/share/sagemath/bin/sage-ipython in <module> >> > 1 #!/usr/bin/env sage-python >> > 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 TerminalIPythonApp.initialize of >> <sage.repl.interpreter.SageTerminalApp object at 0x7f6700317eb0>> >> > 16 app.start() >> > >> > <decorator-gen-113> in >> initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None) >> > >> > /usr/lib/python3/dist-packages/traitlets/config/application.py in >> catch_config_error(method=<function TerminalIPythonApp.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 TerminalIPythonApp.initialize at 0x7f66febbf5e0> >> > app = <sage.repl.interpreter.SageTerminalApp object at 0x7f6700317eb0> >> > 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 >> > >> > /usr/lib/python3/dist-packages/IPython/terminal/ipapp.py in >> initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None) >> > 302 >> > 303 return super(TerminalIPythonApp, self).parse_command_line(argv) >> > 304 >> > 305 @catch_config_error >> > 306 def initialize(self, argv=None): >> > 307 """Do actions after construct, but before starting the app.""" >> > 308 super(TerminalIPythonApp, self).initialize(argv) >> > 309 if self.subapp is not None: >> > 310 # don't bother initializing further, starting subapp >> > 311 return >> > 312 # print self.extra_args >> > 313 if self.extra_args and not self.something_to_run: >> > 314 self.file_to_run = self.extra_args[0] >> > 315 self.init_path() >> > 316 # create the shell >> > --> 317 self.init_shell() >> > self.init_shell = <bound method SageTerminalApp.init_shell of >> <sage.repl.interpreter.SageTerminalApp object at 0x7f6700317eb0>> >> > 318 # and draw the banner >> > 319 self.init_banner() >> > 320 # Now a variety of things that happen after the banner is printed. >> > 321 self.init_gui_pylab() >> > 322 self.init_extensions() >> > 323 self.init_code() >> > 324 >> > 325 def init_shell(self): >> > 326 """initialize the InteractiveShell instance""" >> > 327 # Create an InteractiveShell instance. >> > 328 # shell.display_banner should always be False for the terminal >> > 329 # based app, because we call shell.show_banner() by hand below >> > 330 # so the banner shows *before* all extension loading stuff. >> > 331 self.shell = self.interactive_shell_class.instance(parent=self, >> > 332 profile_dir=self.profile_dir, >> > >> > /usr/lib/python3/dist-packages/sage/repl/interpreter.py in >> init_shell(self=<sage.repl.interpreter.SageTerminalApp object>) >> > 727 self.shell.has_sage_extensions = SAGE_EXTENSION in self.extensions >> > 728 >> > 729 # Load the %lprun extension if available >> > 730 try: >> > 731 import line_profiler >> > 732 except ImportError: >> > 733 pass >> > 734 else: >> > 735 self.extensions.append('line_profiler') >> > 736 >> > 737 if self.shell.has_sage_extensions: >> > 738 self.extensions.remove(SAGE_EXTENSION) >> > 739 >> > 740 # load sage extension here to get a crash if >> > 741 # something is wrong with the sage library >> > --> 742 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 0x7f66fcd10490>> >> > global SAGE_EXTENSION = 'sage' >> > 743 >> > 744 >> > >> > /usr/lib/python3/dist-packages/IPython/core/extensions.py in >> load_extension(self=<IPython.core.extensions.ExtensionManager object>, >> module_str='sage') >> > 72 if module_str in self.loaded: >> > 73 return "already loaded" >> > 74 >> > 75 from IPython.utils.syspathcontext import prepended_to_syspath >> > 76 >> > 77 with self.shell.builtin_trap: >> > 78 if module_str not in sys.modules: >> > 79 with prepended_to_syspath(self.ipython_extension_dir): >> > 80 mod = import_module(module_str) >> > 81 if mod.__file__.startswith(self.ipython_extension_dir): >> > 82 print(("Loading extensions from {dir} is deprecated. " >> > 83 "We recommend managing extensions like any " >> > 84 "other Python packages, in site-packages.").format( >> > 85 dir=compress_user(self.ipython_extension_dir))) >> > 86 mod = sys.modules[module_str] >> > ---> 87 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 0x7f66fcd10490>> >> > mod = <module 'sage' from >> '/usr/lib/python3/dist-packages/sage/__init__.py'> >> > 88 self.loaded.add(module_str) >> > 89 else: >> > 90 return "no load function" >> > 91 >> > 92 def unload_extension(self, module_str): >> > 93 """Unload an IPython extension by its module name. >> > 94 >> > 95 This function looks up the extension's name in ``sys.modules`` and >> > 96 simply calls ``mod.unload_ipython_extension(self)``. >> > 97 >> > 98 Returns the string "no unload function" if the extension doesn't >> define >> > 99 a function to unload itself, "not loaded" if the extension isn't >> loaded, >> > 100 otherwise None. >> > 101 """ >> > 102 if module_str not in self.loaded: >> > >> > /usr/lib/python3/dist-packages/IPython/core/extensions.py in >> _call_load_ipython_extension(self=<IPython.core.extensions.ExtensionManager >> object>, mod=<module 'sage' from >> '/usr/lib/python3/dist-packages/sage/__init__.py'>) >> > 119 """ >> > 120 from IPython.utils.syspathcontext import prepended_to_syspath >> > 121 >> > 122 if (module_str in self.loaded) and (module_str in sys.modules): >> > 123 self.unload_extension(module_str) >> > 124 mod = sys.modules[module_str] >> > 125 with prepended_to_syspath(self.ipython_extension_dir): >> > 126 reload(mod) >> > 127 if self._call_load_ipython_extension(mod): >> > 128 self.loaded.add(module_str) >> > 129 else: >> > 130 self.load_extension(module_str) >> > 131 >> > 132 def _call_load_ipython_extension(self, mod): >> > 133 if hasattr(mod, 'load_ipython_extension'): >> > --> 134 mod.load_ipython_extension(self.shell) >> > mod.load_ipython_extension = <function load_ipython_extension at >> 0x7f67002d7040> >> > self.shell = <sage.repl.interpreter.SageTerminalInteractiveShell object >> at 0x7f66feb5bac0> >> > 135 return True >> > 136 >> > 137 def _call_unload_ipython_extension(self, mod): >> > 138 if hasattr(mod, 'unload_ipython_extension'): >> > 139 mod.unload_ipython_extension(self.shell) >> > 140 return True >> > 141 >> > 142 @undoc >> > 143 def install_extension(self, url, filename=None): >> > 144 """ >> > 145 Deprecated. >> > 146 """ >> > 147 # Ensure the extension directory exists >> > 148 raise DeprecationWarning( >> > 149 '`install_extension` and the `install_ext` magic have been >> deprecated since IPython 4.0' >> > >> > /usr/lib/python3/dist-packages/sage/__init__.py 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 0x7f66fcacaa60> >> > args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at >> 0x7f66feb5bac0>,) >> > 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) >> > >> > /usr/lib/python3/dist-packages/sage/repl/ipython_extension.py 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 >> 0x7f66feb5bac0>,) >> > 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) >> > >> > /usr/lib/python3/dist-packages/sage/repl/ipython_extension.py 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 >> 0x7f66feb5bac0> >> > >> > /usr/lib/python3/dist-packages/sage/repl/ipython_extension.py in >> __init__(self=<sage.repl.ipython_extension.SageCustomizations object>, >> shell=<sage.repl.interpreter.SageTerminalInteractiveShell object>) >> > 420 def __init__(self, shell=None): >> > 421 """ >> > 422 Initialize the Sage plugin. >> > 423 """ >> > 424 self.shell = shell >> > 425 >> > 426 self.auto_magics = SageMagics(shell) >> > 427 self.shell.register_magics(self.auto_magics) >> > 428 >> > 429 import sage.misc.edit_module as edit_module >> > 430 self.shell.set_hook('editor', edit_module.edit_devel) >> > 431 >> > 432 self.init_inspector() >> > 433 self.init_line_transforms() >> > 434 >> > --> 435 import sage.all # until sage's import hell is fixed >> > sage.all = undefined >> > 436 >> > 437 self.shell.verbose_quit = True >> > 438 self.set_quit_hook() >> > 439 >> > 440 self.register_interface_magics() >> > 441 >> > 442 if SAGE_IMPORTALL == 'yes': >> > 443 self.init_environment() >> > 444 >> > 445 def register_interface_magics(self): >> > 446 """ >> > 447 Register magics for each of the Sage interfaces >> > 448 """ >> > 449 from sage.repl.interface_magic import InterfaceMagic >> > 450 InterfaceMagic.register_all(self.shell) >> > >> > /usr/lib/python3/dist-packages/sage/all.py in <module> >> > 91 warnings.filterwarnings('ignore', category=RuntimeWarning, >> > 92 message=r"'sin' and 'sout' swap memory stats couldn't be >> determined") >> > 93 from sage.misc.all import * # takes a while >> > 94 from sage.typeset.all import * >> > 95 from sage.repl.all import * >> > 96 >> > 97 from sage.misc.sh import sh >> > 98 >> > 99 from sage.libs.all import * >> > 100 from sage.data_structures.all import * >> > 101 from sage.doctest.all import * >> > 102 >> > 103 from sage.structure.all import * >> > 104 from sage.rings.all import * >> > 105 from sage.arith.all import * >> > --> 106 from sage.matrix.all import * >> > global sage.matrix.all = undefined >> > 107 >> > 108 from sage.symbolic.all import * >> > 109 from sage.modules.all import * >> > 110 from sage.monoids.all import * >> > 111 from sage.algebras.all import * >> > 112 from sage.modular.all import * >> > 113 from sage.sat.all import * >> > 114 from sage.schemes.all import * >> > 115 from sage.graphs.all import * >> > 116 from sage.groups.all import * >> > 117 from sage.arith.power import generic_power as power >> > 118 from sage.databases.all import * >> > 119 from sage.categories.all import * >> > 120 from sage.sets.all import * >> > 121 from sage.probability.all import * >> > >> > /usr/lib/python3/dist-packages/sage/matrix/__init__.py in <module> >> > 1 # Resolve a cyclic import >> > ----> 2 import sage.matrix.args >> > global sage.matrix.args = undefined >> > >> > /usr/lib/python3/dist-packages/sage/matrix/args.pyx in init >> sage.matrix.args (build/cythonized/sage/matrix/args.c:21273)() >> > 8 # Copyright (C) 2018 Jeroen Demeyer <j.de...@ugent.be> >> > 9 # >> > 10 # This program is free software: you can redistribute it and/or >> modify >> > 11 # it under the terms of the GNU General Public License as published >> by >> > 12 # the Free Software Foundation, either version 2 of the License, or >> > 13 # (at your option) any later version. >> > 14 # http://www.gnu.org/licenses/ >> > 15 >> #***************************************************************************** >> >> >> > 16 >> > 17 cimport cython >> > 18 from cpython.sequence cimport PySequence_Fast >> > 19 from cysignals.signals cimport sig_check >> > 20 from cypari2.gen cimport Gen >> > 21 from cypari2.types cimport typ, t_MAT, t_VEC, t_COL, t_VECSMALL, >> t_LIST, t_STR, t_CLOSURE >> > 22 >> > ---> 23 from .matrix_space import MatrixSpace >> > global matrix_space = undefined >> > global MatrixSpace = undefined >> > 24 from sage.rings.all import ZZ, RDF, CDF >> > 25 from sage.structure.coerce cimport (coercion_model, >> > 26 is_numpy_type, py_scalar_parent) >> > 27 from sage.structure.element cimport Element, RingElement, Vector >> > 28 from sage.arith.long cimport pyobject_to_long >> > 29 from sage.misc.misc_c import sized_iter >> > 30 from sage.categories import monoids >> > 31 >> > 32 >> > 33 CommutativeMonoids = monoids.Monoids().Commutative() >> > 34 >> > 35 >> > 36 cdef inline bint element_is_scalar(Element x): >> > 37 """ >> > 38 Should this element be considered a scalar (as opposed to a vector)? >> > >> > /usr/lib/python3/dist-packages/sage/matrix/matrix_space.py in <module> >> > 31 # (at your option) any later version. >> > 32 # https://www.gnu.org/licenses/ >> > 33 # >> **************************************************************************** >> >> > 34 from __future__ import print_function, absolute_import >> > 35 from six.moves import range >> > 36 from six import iteritems, integer_types >> > 37 >> > 38 # System imports >> > 39 import sys >> > 40 import operator >> > 41 >> > 42 # Sage matrix imports >> > 43 from . import matrix_generic_dense >> > 44 from . import matrix_generic_sparse >> > 45 >> > ---> 46 from . import matrix_modn_sparse >> > global matrix_modn_sparse = undefined >> > 47 >> > 48 from . import matrix_mod2_dense >> > 49 from . import matrix_gf2e_dense >> > 50 >> > 51 from . import matrix_integer_dense >> > 52 from . import matrix_integer_sparse >> > 53 >> > 54 from . import matrix_rational_dense >> > 55 from . import matrix_rational_sparse >> > 56 >> > 57 from . import matrix_polynomial_dense >> > 58 from . import matrix_mpolynomial_dense >> > 59 >> > 60 # Sage imports >> > 61 from sage.misc.superseded import deprecation >> > >> > ImportError: /usr/lib/python3/dist-packages/sage/matrix/ >> matrix_modn_sparse.cpython-38-x86_64-linux-gnu.so: undefined symbol: >> _ZNK6Givaro7IntegercvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEB5cxx11Ev >> >> >> > >> > >> *************************************************************************** >> > >> > History of session input: >> > *** Last line of input (may not be in above history): >> > >> > Best, >> > Lance >> > >> > -- >> > 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 sage-support...@googlegroups.com. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/sage-support/CAPEqHYnogPuc6SeExsyA7oXt54UcKYPECSp1N0u%3Dqpq-jn69JQ%40mail.gmail.com. >> >> >> > -- 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 sage-support+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-support/b2e15ca1-5c07-4c3f-b367-89aeeb025a31n%40googlegroups.com.