On Wed, Apr 8, 2020 at 11:05 AM hbetx9 <lance.e.mil...@gmail.com> wrote:
> I installed from package on Mint 19.3. I'm happy to run whatever is > needed to help diagnose. For context, I have installed python 2.7.17 and the > package pulled sage 8.1. I'm not sure why the packages didn't pull the most > up to date. Is there a PPA I need to add? > my understanding is that MInt 19 by default follows Ubunu 18.04 (which indeed has Sage 8.1). We'd recommend you to build Sage (say, the latest stable version, 9.0) from source instead. While latest Ubuntu does have Sage 9.0, I don't know how to get it installed on your Mint, from PPA or otherwise. Perhaps you can ask on a Mint forum. HTH Dima > Best, > Lance > > On Saturday, April 4, 2020 at 9:49:09 PM UTC-5, Dima Pasechnik wrote: >> >> On Sun, Apr 5, 2020 at 7:44 AM Lance Edward Miller <lem...@uark.edu> wrote: >> > >> > After install on Linux Mint 19.3, I got the following crash report. Any >> > help is appreciated. >> >> What exactly have you installed? >> A binary installation, or done a build from sources? >> >> > >> > *************************************************************************** >> > >> > IPython post-mortem report >> > >> > {'commit_hash': u'b467d487e', >> > 'commit_source': 'installation', >> > 'default_encoding': 'UTF-8', >> > 'ipython_path': '/usr/lib/python2.7/dist-packages/IPython', >> > 'ipython_version': '5.5.0', >> > 'os_name': 'posix', >> > 'platform': 'Linux-5.3.0-40-generic-x86_64-with-LinuxMint-19.3-tricia', >> > 'sys_executable': '/usr/bin/python', >> > 'sys_platform': 'linux2', >> > 'sys_version': '2.7.17 (default, Nov 7 2019, 10:07:09) \n[GCC 7.4.0]'} >> > >> > *************************************************************************** >> > >> > >> > >> > *************************************************************************** >> > >> > Crash traceback: >> > >> > --------------------------------------------------------------------------- >> > --------------------------------------------------------------------------- >> > ImportError Python 2.7.17: /usr/bin/python >> > Sat Apr 4 18:39:09 2020 >> > 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 python >> > 2 # -*- coding: utf-8 -*- >> > 3 """ >> > 4 Sage IPython startup script. >> > 5 """ >> > 6 >> > 7 from sage.repl.interpreter import SageTerminalApp >> > 8 >> > 9 app = SageTerminalApp.instance() >> > ---> 10 app.initialize() >> > global app.initialize = <bound method SageTerminalApp.initialize >> > of <sage.repl.interpreter.SageTerminalApp object at 0x7f76836e7150>> >> > 11 app.start() >> > >> > <decorator-gen-110> in >> > initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None) >> > >> > /usr/lib/python2.7/dist-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 0x7f76806919d0> >> > app = <sage.repl.interpreter.SageTerminalApp object at >> > 0x7f76836e7150> >> > 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/python2.7/dist-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 0x7f76836e7150>> >> > 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, >> > >> > /usr/lib/python2.7/dist-packages/sage/repl/interpreter.pyc in >> > init_shell(self=<sage.repl.interpreter.SageTerminalApp object>) >> > 730 This code is based on >> > 731 :meth:`TerminalIPythonApp.init_shell`. >> > 732 >> > 733 EXAMPLES:: >> > 734 >> > 735 sage: from sage.repl.interpreter import SageTerminalApp >> > 736 sage: app = SageTerminalApp.instance() >> > 737 sage: app.shell >> > 738 <sage.repl.interpreter.SageTestShell object at 0x...> >> > 739 """ >> > 740 # Shell initialization >> > 741 self.shell = self.shell_class.instance( >> > 742 parent=self, >> > 743 config=self.config, >> > 744 profile_dir=self.profile_dir, >> > --> 745 ipython_dir=self.ipython_dir) >> > global ipython_dir = undefined >> > self.ipython_dir = u'/home/lmiller/.ipython' >> > 746 self.shell.configurables.append(self) >> > 747 self.shell.has_sage_extensions = SAGE_EXTENSION in >> > self.extensions >> > 748 >> > 749 # Load the %lprun extension if available >> > 750 try: >> > 751 import line_profiler >> > 752 except ImportError: >> > 753 pass >> > 754 else: >> > 755 self.extensions.append('line_profiler') >> > 756 >> > 757 if self.shell.has_sage_extensions: >> > 758 self.extensions.remove(SAGE_EXTENSION) >> > 759 >> > 760 # load sage extension here to get a crash if >> > >> > /usr/lib/python2.7/dist-packages/traitlets/config/configurable.pyc in >> > instance(cls=<class 'sage.repl.interpreter.SageTerminalInteractiveShell'>, >> > *args=(), **kwargs={'config': {'InteractiveShell': {'term_title': True, >> > 'color...ue}, 'SageTerminalApp': {'force_interact': True}}, 'ipython_dir': >> > u'/home/lmiller/.ipython', 'parent': >> > <sage.repl.interpreter.SageTerminalApp object>, 'profile_dir': >> > <IPython.core.profiledir.ProfileDir object>}) >> > 397 >>> class Foo(SingletonConfigurable): pass >> > 398 >>> foo = Foo.instance() >> > 399 >>> foo == Foo.instance() >> > 400 True >> > 401 >> > 402 Create a subclass that is retrived using the base class >> > instance:: >> > 403 >> > 404 >>> class Bar(SingletonConfigurable): pass >> > 405 >>> class Bam(Bar): pass >> > 406 >>> bam = Bam.instance() >> > 407 >>> bam == Bar.instance() >> > 408 True >> > 409 """ >> > 410 # Create and save the instance >> > 411 if cls._instance is None: >> > --> 412 inst = cls(*args, **kwargs) >> > inst = undefined >> > cls = <class 'sage.repl.interpreter.SageTerminalInteractiveShell'> >> > args = () >> > kwargs = {'ipython_dir': u'/home/lmiller/.ipython', 'profile_dir': >> > <IPython.core.profiledir.ProfileDir object at 0x7f76806b4d50>, 'config': >> > {'InteractiveShell': {'term_title': True, 'colors': 'LightBG', >> > 'confirm_exit': False, 'prompts_class': <class >> > 'sage.repl.prompts.SagePrompts'>, 'separate_in': '', >> > 'ast_node_interactivity': 'all', 'simple_prompt': False}, >> > 'InteractiveShellApp': {'extensions': ['sage']}, 'TerminalIPythonApp': >> > {'shell_class': <class >> > 'sage.repl.interpreter.SageTerminalInteractiveShell'>, 'display_banner': >> > False, 'test_shell': False, 'verbose_crash': True}, 'SageTerminalApp': >> > {'force_interact': True}}, 'parent': >> > <sage.repl.interpreter.SageTerminalApp object at 0x7f76836e7150>} >> > 413 # Now make sure that the instance will also be >> > returned by >> > 414 # parent classes' _instance attribute. >> > 415 for subclass in cls._walk_mro(): >> > 416 subclass._instance = inst >> > 417 >> > 418 if isinstance(cls._instance, cls): >> > 419 return cls._instance >> > 420 else: >> > 421 raise MultipleInstanceError( >> > 422 'Multiple incompatible subclass instances of ' >> > 423 '%s are being created.' % cls.__name__ >> > 424 ) >> > 425 >> > 426 @classmethod >> > 427 def initialized(cls): >> > >> > /usr/lib/python2.7/dist-packages/IPython/terminal/interactiveshell.pyc in >> > __init__(self=<sage.repl.interpreter.SageTerminalInteractiveShell object>, >> > *args=(), **kwargs={'config': {'InteractiveShell': {'term_title': True, >> > 'color...ue}, 'SageTerminalApp': {'force_interact': True}}, 'ipython_dir': >> > u'/home/lmiller/.ipython', 'parent': >> > <sage.repl.interpreter.SageTerminalApp object>, 'profile_dir': >> > <IPython.core.profiledir.ProfileDir object>}) >> > 423 >> > 424 def init_alias(self): >> > 425 # The parent class defines aliases that can be safely used >> > with any >> > 426 # frontend. >> > 427 super(TerminalInteractiveShell, self).init_alias() >> > 428 >> > 429 # Now define aliases that only make sense on the terminal, >> > because they >> > 430 # need direct access to the console in a way that we can't >> > emulate in >> > 431 # GUI or web frontend >> > 432 if os.name == 'posix': >> > 433 for cmd in ['clear', 'more', 'less', 'man']: >> > 434 self.alias_manager.soft_define_alias(cmd, cmd) >> > 435 >> > 436 >> > 437 def __init__(self, *args, **kwargs): >> > --> 438 super(TerminalInteractiveShell, self).__init__(*args, >> > **kwargs) >> > global super = undefined >> > global TerminalInteractiveShell = <class >> > 'IPython.terminal.interactiveshell.TerminalInteractiveShell'> >> > self.__init__ = <bound method >> > SageTerminalInteractiveShell.__init__ of >> > <sage.repl.interpreter.SageTerminalInteractiveShell object at >> > 0x7f76806b4910>> >> > args = () >> > kwargs = {'profile_dir': <IPython.core.profiledir.ProfileDir >> > object at 0x7f76806b4d50>, 'config': {'InteractiveShell': {'term_title': >> > True, 'colors': 'LightBG', 'confirm_exit': False, 'prompts_class': <class >> > 'sage.repl.prompts.SagePrompts'>, 'separate_in': '', >> > 'ast_node_interactivity': 'all', 'simple_prompt': False}, >> > 'InteractiveShellApp': {'extensions': ['sage']}, 'TerminalIPythonApp': >> > {'shell_class': <class >> > 'sage.repl.interpreter.SageTerminalInteractiveShell'>, 'display_banner': >> > False, 'test_shell': False, 'verbose_crash': True}, 'SageTerminalApp': >> > {'force_interact': True}}, 'ipython_dir': u'/home/lmiller/.ipython', >> > 'parent': <sage.repl.interpreter.SageTerminalApp object at 0x7f76836e7150>} >> > 439 self.init_prompt_toolkit_cli() >> > 440 self.init_term_title() >> > 441 self.keep_running = True >> > 442 >> > 443 self.debugger_history = InMemoryHistory() >> > 444 >> > 445 def ask_exit(self): >> > 446 self.keep_running = False >> > 447 >> > 448 rl_next_input = None >> > 449 >> > 450 def pre_prompt(self): >> > 451 if self.rl_next_input: >> > 452 # We can't set the buffer here, because it will be >> > reset just after >> > 453 # this. Adding a callable to pre_run_callables does >> > what we need >> > >> > /usr/lib/python2.7/dist-packages/IPython/core/interactiveshell.pyc in >> > __init__(self=<sage.repl.interpreter.SageTerminalInteractiveShell object>, >> > ipython_dir=u'/home/lmiller/.ipython', >> > profile_dir=<IPython.core.profiledir.ProfileDir object>, user_module=None, >> > user_ns=None, custom_exceptions=((), None), **kwargs={'config': >> > {'InteractiveShell': {'term_title': True, 'color...ue}, 'SageTerminalApp': >> > {'force_interact': True}}, 'parent': >> > <sage.repl.interpreter.SageTerminalApp object>}) >> > 488 self.init_builtins() >> > 489 >> > 490 # The following was in post_config_initialization >> > 491 self.init_inspector() >> > 492 if py3compat.PY3: >> > 493 self.raw_input_original = input >> > 494 else: >> > 495 self.raw_input_original = raw_input >> > 496 self.init_completer() >> > 497 # TODO: init_io() needs to happen before init_traceback >> > handlers >> > 498 # because the traceback handlers hardcode the >> > stdout/stderr streams. >> > 499 # This logic in in debugger.Pdb and should eventually be >> > changed. >> > 500 self.init_io() >> > 501 self.init_traceback_handlers(custom_exceptions) >> > 502 self.init_prompts() >> > --> 503 self.init_display_formatter() >> > self.init_display_formatter = <bound method >> > SageTerminalInteractiveShell.init_display_formatter of >> > <sage.repl.interpreter.SageTerminalInteractiveShell object at >> > 0x7f76806b4910>> >> > 504 self.init_display_pub() >> > 505 self.init_data_pub() >> > 506 self.init_displayhook() >> > 507 self.init_magics() >> > 508 self.init_alias() >> > 509 self.init_logstart() >> > 510 self.init_pdb() >> > 511 self.init_extension_manager() >> > 512 self.init_payload() >> > 513 self.init_deprecation_warnings() >> > 514 self.hooks.late_startup_hook() >> > 515 self.events.trigger('shell_initialized', self) >> > 516 atexit.register(self.atexit_operations) >> > 517 >> > 518 def get_ipython(self): >> > >> > /usr/lib/python2.7/dist-packages/sage/repl/interpreter.pyc in >> > init_display_formatter(self=<sage.repl.interpreter.SageTerminalInteractiveShell >> > object>) >> > 245 >> > 246 sage: from sage.repl.interpreter import >> > SageTerminalInteractiveShell >> > 247 sage: SageTerminalInteractiveShell() # not tested >> > 248 <sage.repl.interpreter.SageNotebookInteractiveShell object >> > at 0x...> >> > 249 """ >> > 250 >> > 251 def init_display_formatter(self): >> > 252 """ >> > 253 Switch to the Sage IPython commandline rich output backend >> > 254 >> > 255 EXAMPLES:: >> > 256 >> > 257 sage: from sage.repl.interpreter import >> > SageTerminalInteractiveShell >> > 258 sage: >> > SageTerminalInteractiveShell().init_display_formatter() # not tested >> > 259 """ >> > --> 260 from sage.repl.rich_output.backend_ipython import >> > BackendIPythonCommandline >> > global sage.repl.rich_output.backend_ipython = undefined >> > BackendIPythonCommandline = undefined >> > 261 backend = BackendIPythonCommandline() >> > 262 backend.get_display_manager().switch_backend(backend, >> > shell=self) >> > 263 >> > 264 >> > 265 class SageTestShell(SageShellOverride, TerminalInteractiveShell): >> > 266 """ >> > 267 Test Shell >> > 268 >> > 269 Care must be taken in these doctests to quit the test shell in >> > 270 order to switch back the rich output display backend to the >> > 271 doctest backend. >> > 272 >> > 273 EXAMPLES:: >> > 274 >> > 275 sage: from sage.repl.interpreter import get_test_shell >> > >> > /usr/lib/python2.7/dist-packages/sage/repl/rich_output/__init__.py in >> > <module>() >> > 1 # -*- encoding: utf-8 -*- >> > 2 >> > ----> 3 from .display_manager import get_display_manager >> > global display_manager = undefined >> > global get_display_manager = undefined >> > 4 from .pretty_print import pretty_print >> > 5 >> > 6 >> > >> > /usr/lib/python2.7/dist-packages/sage/repl/rich_output/display_manager.py >> > in <module>() >> > 24 The Sage display manager using the doctest backend >> > 25 """ >> > 26 >> > 27 >> > #***************************************************************************** >> > 28 # Copyright (C) 2015 Volker Braun <vbrau...@gmail.com> >> > 29 # >> > 30 # Distributed under the terms of the GNU General Public License >> > (GPL) >> > 31 # as published by the Free Software Foundation; either version 2 >> > of >> > 32 # the License, or (at your option) any later version. >> > 33 # http://www.gnu.org/licenses/ >> > 34 >> > #***************************************************************************** >> > 35 >> > 36 >> > 37 import warnings >> > 38 >> > ---> 39 from sage.structure.sage_object import SageObject >> > global sage.structure.sage_object = undefined >> > global SageObject = undefined >> > 40 from sage.repl.rich_output.output_basic import ( >> > 41 OutputPlainText, OutputAsciiArt, OutputUnicodeArt, OutputLatex, >> > 42 ) >> > 43 from sage.repl.rich_output.preferences import DisplayPreferences >> > 44 >> > 45 >> > 46 class DisplayException(Exception): >> > 47 """ >> > 48 Base exception for all rich output-related exceptions. >> > 49 >> > 50 EXAMPLES:: >> > 51 >> > 52 sage: from sage.repl.rich_output.display_manager import >> > DisplayException >> > 53 sage: raise DisplayException('foo') >> > 54 Traceback (most recent call last): >> > >> > ImportError: No module named sage_object >> > >> > *************************************************************************** >> > >> > -- >> > 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-s...@googlegroups.com. >> > To view this discussion on the web visit >> > https://groups.google.com/d/msgid/sage-support/CAPEqHYnjo432OyGqYztMZAXwew8KVaK72ZYYZL9e2ed%3DfZJoFw%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/defa3f57-b723-42d5-8be9-159ad5aa1d04%40googlegroups.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/CAAWYfq1HeMjbgmDJUGUfg3Kf6N%3D%3D6CsVoXH85Uu0E3RacRR06A%40mail.gmail.com.