Tried from source and got this error: Error building Sage.
The following package(s) may have failed to build (not necessarily during this run of 'make all-start'): * package: r-3.6.2 log file: /home/lmiller/sage-9.0/logs/pkgs/r-3.6.2.log build directory: /home/lmiller/sage-9.0/local/var/tmp/sage/build/r-3.6.2 which I'm guessing is only needed if one wants to use integration with R. At this time I don't but in future I might, should I install R and rebuild? Build took a LONG time. Also, version 9 is now in ~/SAGE_ROOT/local but the system version is still 8.1. I guess I need to modify path or create a symlink to get sage available to terminal on boot? Finally, can the color scheme for sage on the terminal be changed? I used a dark background so this is not easy to read. Thanks in advance! On Wednesday, April 8, 2020 at 12:14:48 AM UTC-5, Dima Pasechnik wrote: > > On Wed, Apr 8, 2020 at 11:05 AM hbetx9 <lance....@gmail.com <javascript:>> > 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-s...@googlegroups.com <javascript:>. > > 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/82be8efb-6ae7-4b79-97ee-55898a4ae708%40googlegroups.com.