sagemath / sage-archive-2023-02-01

This repository used to be the user-facing mirror of the Sage source tree. As Sage development migrated on 2023-02-01 from https://trac.sagemath.org/ to our new repository on GitHub, https://github.com/sagemath/sage, we have renamed and archived this repository.
https://www.sagemath.org
Other
2.01k stars 413 forks source link

Sage 8 failed to run for the first time on Fedora Cinnamon 26 #80

Closed duytrung closed 6 years ago

duytrung commented 7 years ago

Hi,

I'm interested in the Sage software. However, I installed it into my computer and run for the first time. Here is the result:


***************************************************************************

IPython post-mortem report

{'commit_hash': u'5c9c918',
 'commit_source': 'installation',
 'default_encoding': 'UTF-8',
 'ipython_path': '/home/wn/Documents/SageMath/local/lib/python2.7/site-packages/IPython',
 'ipython_version': '5.1.0',
 'os_name': 'posix',
 'platform': 'Linux-4.11.11-300.fc26.x86_64-x86_64-with-fedora-26-Twenty_Six',
 'sys_executable': '/home/wn/Documents/SageMath/local/bin/python',
 'sys_platform': 'linux2',
 'sys_version': '2.7.13 (default, Jul 22 2017, 00:49:06) \n[GCC 6.3.1 20161221 (Red Hat 6.3.1-1)]'}

***************************************************************************

***************************************************************************

Crash traceback:

---------------------------------------------------------------------------
---------------------------------------------------------------------------
ImportError     Python 2.7.13: /home/wn/Documents/SageMath/local/bin/python
                                                   Tue Aug  8 21:49:30 2017
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.
/home/wn/Documents/SageMath/src/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 0x7fe0caf2d1d0>>
     11 app.start()

<decorator-gen-109> in initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None)

/home/wn/Documents/SageMath/local/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 0x7fe0bd3c7d70>
        app = <sage.repl.interpreter.SageTerminalApp object at 0x7fe0caf2d1d0>
        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 

/home/wn/Documents/SageMath/local/lib/python2.7/site-packages/IPython/terminal/ipapp.pyc in initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None)
    294 
    295         return super(TerminalIPythonApp, self).parse_command_line(argv)
    296     
    297     @catch_config_error
    298     def initialize(self, argv=None):
    299         """Do actions after construct, but before starting the app."""
    300         super(TerminalIPythonApp, self).initialize(argv)
    301         if self.subapp is not None:
    302             # don't bother initializing further, starting subapp
    303             return
    304         # print self.extra_args
    305         if self.extra_args and not self.something_to_run:
    306             self.file_to_run = self.extra_args[0]
    307         self.init_path()
    308         # create the shell
--> 309         self.init_shell()
        self.init_shell = <bound method SageTerminalApp.init_shell of <sage.repl.interpreter.SageTerminalApp object at 0x7fe0caf2d1d0>>
    310         # and draw the banner
    311         self.init_banner()
    312         # Now a variety of things that happen after the banner is printed.
    313         self.init_gui_pylab()
    314         self.init_extensions()
    315         self.init_code()
    316 
    317     def init_shell(self):
    318         """initialize the InteractiveShell instance"""
    319         # Create an InteractiveShell instance.
    320         # shell.display_banner should always be False for the terminal
    321         # based app, because we call shell.show_banner() by hand below
    322         # so the banner shows *before* all extension loading stuff.
    323         self.shell = TerminalInteractiveShell.instance(parent=self,
    324                         profile_dir=self.profile_dir,

/home/wn/Documents/SageMath/local/lib/python2.7/site-packages/sage/repl/interpreter.pyc in init_shell(self=<sage.repl.interpreter.SageTerminalApp object>)
    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
    761             # something is wrong with the sage library
--> 762             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 0x7fe0bc033510>>
        global SAGE_EXTENSION = 'sage'
    763 
    764 

/home/wn/Documents/SageMath/local/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 0x7fe0bc033510>>
        mod = <module 'sage' from '/home/wn/Documents/SageMath/local/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:

/home/wn/Documents/SageMath/local/lib/python2.7/site-packages/IPython/core/extensions.pyc in _call_load_ipython_extension(self=<IPython.core.extensions.ExtensionManager object>, mod=<module 'sage' from '/home/wn/Documents/SageMath...l/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 0x7fe0caf1e7d0>
        self.shell = <sage.repl.interpreter.SageTerminalInteractiveShell object at 0x7fe0bd3efa10>
    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.

/home/wn/Documents/SageMath/local/lib/python2.7/site-packages/sage/__init__.pyc in load_ipython_extension(*args=(<sage.repl.interpreter.SageTerminalInteractiveShell object>,))
      1 __all__ = ['all']
      2 
      3 # Make sure that the correct zlib library is loaded. This is needed
      4 # to prevent the system zlib to be loaded instead of the Sage one.
      5 # See https://trac.sagemath.org/ticket/23122
      6 import zlib
      7 
      8 # IPython calls this when starting up
      9 def load_ipython_extension(*args):
     10     import sage.repl.ipython_extension
---> 11     sage.repl.ipython_extension.load_ipython_extension(*args)
        sage.repl.ipython_extension.load_ipython_extension = <function load_ipython_extension at 0x7fe0b7b868c0>
        args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at 0x7fe0bd3efa10>,)

/home/wn/Documents/SageMath/local/lib/python2.7/site-packages/sage/repl/ipython_extension.pyc in wrapper(*args=(<sage.repl.interpreter.SageTerminalInteractiveShell object>,), **kwargs={})
    546         ....:     if work:
    547         ....:         return 'foo worked'
    548         ....:     raise RuntimeError("foo didn't work")
    549         sage: foo(False)
    550         Traceback (most recent call last):
    551         ...
    552         RuntimeError: foo didn't work
    553         sage: foo(True)
    554         'foo worked'
    555         sage: foo(False)
    556         sage: foo(True)
    557     """
    558     @wraps(func)
    559     def wrapper(*args, **kwargs):
    560         if not wrapper.has_run:
--> 561             result = func(*args, **kwargs)
        result = undefined
        global func = undefined
        args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at 0x7fe0bd3efa10>,)
        kwargs = {}
    562             wrapper.has_run = True
    563             return result
    564     wrapper.has_run = False
    565     return wrapper
    566 
    567 
    568 @run_once
    569 def load_ipython_extension(ip):
    570     """
    571     Load the extension in IPython.
    572     """
    573     # this modifies ip
    574     SageCustomizations(shell=ip)

/home/wn/Documents/SageMath/local/lib/python2.7/site-packages/sage/repl/ipython_extension.pyc in load_ipython_extension(ip=<sage.repl.interpreter.SageTerminalInteractiveShell object>)
    559     def wrapper(*args, **kwargs):
    560         if not wrapper.has_run:
    561             result = func(*args, **kwargs)
    562             wrapper.has_run = True
    563             return result
    564     wrapper.has_run = False
    565     return wrapper
    566 
    567 
    568 @run_once
    569 def load_ipython_extension(ip):
    570     """
    571     Load the extension in IPython.
    572     """
    573     # this modifies ip
--> 574     SageCustomizations(shell=ip)
        global SageCustomizations = <class 'sage.repl.ipython_extension.SageCustomizations'>
        global shell = undefined
        ip = <sage.repl.interpreter.SageTerminalInteractiveShell object at 0x7fe0bd3efa10>

/home/wn/Documents/SageMath/local/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>)
    417     def __init__(self, shell=None):
    418         """
    419         Initialize the Sage plugin.
    420         """
    421         self.shell = shell
    422 
    423         self.auto_magics = SageMagics(shell)
    424         self.shell.register_magics(self.auto_magics)
    425 
    426         import sage.misc.edit_module as edit_module
    427         self.shell.set_hook('editor', edit_module.edit_devel)
    428 
    429         self.init_inspector()
    430         self.init_line_transforms()
    431 
--> 432         import sage.all # until sage's import hell is fixed
        sage.all = undefined
    433 
    434         self.shell.verbose_quit = True
    435         self.set_quit_hook()
    436 
    437         self.register_interface_magics()
    438 
    439         if SAGE_IMPORTALL == 'yes':
    440             self.init_environment()
    441 
    442     def register_interface_magics(self):
    443         """
    444         Register magics for each of the Sage interfaces
    445         """
    446         from sage.repl.interface_magic import InterfaceMagic
    447         InterfaceMagic.register_all(self.shell)

/home/wn/Documents/SageMath/local/lib/python2.7/site-packages/sage/all.py in <module>()
     72 
     73 # Add SAGE_SRC at the end of sys.path to enable Cython tracebacks
     74 # (which use paths relative to SAGE_SRC)
     75 sys.path.append(SAGE_SRC)
     76 
     77 
     78 ###################################################################
     79 
     80 # This import also setups the interrupt handler
     81 from cysignals.signals import (AlarmInterrupt, SignalError,
     82         sig_on_reset as sig_on_count)
     83 
     84 from time                import sleep
     85 
     86 import sage.misc.lazy_import
---> 87 from sage.misc.all       import *         # takes a while
        global sage.misc.all = undefined
     88 from sage.typeset.all    import *
     89 from sage.repl.all       import *
     90 
     91 from sage.misc.sh import sh
     92 
     93 from sage.libs.all       import *
     94 from sage.data_structures.all import *
     95 from sage.doctest.all    import *
     96 
     97 from sage.structure.all  import *
     98 from sage.rings.all      import *
     99 from sage.arith.all      import *
    100 from sage.matrix.all     import *
    101 
    102 from sage.symbolic.all   import *

/home/wn/Documents/SageMath/local/lib/python2.7/site-packages/sage/misc/all.py in <module>()
     69 
     70 from .defaults import (set_default_variable_name,
     71                         series_precision, set_series_precision)
     72 
     73 from .sage_eval import sage_eval, sageobj
     74 
     75 from .sage_input import sage_input
     76 
     77 lazy_import("sage.misc.cython", ["cython_lambda", "cython_create_local_so"]) 
     78 lazy_import("sage.misc.cython_c", "cython_compile", "cython")
     79 
     80 from .persist import save, load, dumps, loads, db, db_save
     81 
     82 from .func_persist import func_persist
     83 
---> 84 from .functional import (additive_order,
        global functional = undefined
        global additive_order = undefined
        global base_ring = undefined
        global base_field = undefined
        global basis = undefined
        global category = undefined
        global charpoly = undefined
        global characteristic_polynomial = undefined
        global coerce = undefined
        global cyclotomic_polynomial = undefined
        global decomposition = undefined
        global denominator = undefined
        global det = undefined
        global dimension = undefined
        global dim = undefined
        global discriminant = undefined
        global disc = undefined
        global eta = undefined
        global fcp = undefined
        global gen = undefined
        global gens = undefined
        global hecke_operator = undefined
        global image = undefined
        global integral = undefined
        global integrate = undefined
        global integral_closure = undefined
        global interval = undefined
        global xinterval = undefined
        global is_commutative = undefined
        global is_even = undefined
        global is_integrally_closed = undefined
        global is_field = undefined
        global is_odd = undefined
        global kernel = undefined
        global krull_dimension = undefined
        global lift = undefined
        global log = undefined
        global log_b = undefined
        global minimal_polynomial = undefined
        global minpoly = undefined
        global multiplicative_order = undefined
        global ngens = undefined
        global norm = undefined
        global numerator = undefined
        global numerical_approx = undefined
        global n = undefined
        global N = undefined
        global objgens = undefined
        global objgen = undefined
        global order = undefined
        global rank = undefined
        global regulator = undefined
        global round = undefined
        global quotient = undefined
        global quo = undefined
        global isqrt = undefined
        global squarefree_part = undefined
        global symbolic_sum = undefined
        global sum = undefined
        global symbolic_prod = undefined
        global product = undefined
        global transpose = undefined
     85                         base_ring,
     86                         base_field,
     87                         basis,
     88                         category,
     89                         charpoly,
     90                         characteristic_polynomial,
     91                         coerce,
     92                         cyclotomic_polynomial,
     93                         decomposition,
     94                         denominator,
     95                         det,
     96                         dimension,
     97                         dim,
     98                         discriminant,
     99                         disc,

/home/wn/Documents/SageMath/local/lib/python2.7/site-packages/sage/misc/functional.py in <module>()
     17 #
     18 # This program is free software: you can redistribute it and/or modify
     19 # it under the terms of the GNU General Public License as published by
     20 # the Free Software Foundation, either version 2 of the License, or
     21 # (at your option) any later version.
     22 #                  http://www.gnu.org/licenses/
     23 #*****************************************************************************
     24 from __future__ import absolute_import
     25 from six.moves import range, builtins
     26 from six import integer_types
     27 
     28 import sage.misc.latex
     29 import sage.interfaces.expect
     30 import sage.interfaces.mathematica
     31 
---> 32 from sage.rings.complex_double import CDF
        global sage.rings.complex_double = undefined
        global CDF = undefined
     33 from sage.rings.real_double import RDF, RealDoubleElement
     34 
     35 import sage.rings.real_mpfr
     36 import sage.rings.complex_field
     37 import sage.rings.integer
     38 
     39 ##############################################################################
     40 # There are many functions on elements of a ring, which mathematicians
     41 # usually write f(x), e.g., it is weird to write x.log() and natural
     42 # to write log(x).  The functions below allow for the more familiar syntax.
     43 ##############################################################################
     44 def additive_order(x):
     45     """
     46     Returns the additive order of `x`.
     47 

ImportError: libgfortran.so.3: cannot open shared object file: No such file or directory

***************************************************************************

History of session input:
*** Last line of input (may not be in above history):
koffie commented 7 years ago

Hi,

Thanks for letting us know this problem. As you can see on https://wiki.sagemath.org/SupportedPlatforms this is on a Fedora version that is more recent then where we currently have access to for building and testing sage. Which explains the possibilities of things not working. However github is not used to actually do developement or discuss issues. It is just used to have a stable mirror of our git repository. Bugs are tracked on trac.sagemath.org, if you want you can get an account on our trac server and file a bug report there. Problems are discussed on mailing list. I suggest using sage-devel if you feel computer savvy enough in order actually modify the sage source yourselve in order to fix this problem yourself after others point you in the right direction. Otherwise I suggest posing your problem on sage-support

koffie commented 7 years ago

ps. did you install a binary or did you try to install from source? There is no pre-build binary for fedora 26, so if you tried to install a binary then the problem probably comes from the fact that fedora 25 and fedora 26 are not binary compatible.

kiwifb commented 7 years ago

Well, the message says that libgfortran.so.3 is not found. So I am inclined to think that the Original poster tried a binary.

Can you install fedora's gfortran package on your box and see if it solves that particular problem.

duytrung commented 7 years ago

Hi @koffie, I tried to use the binary version download from the website. I will download the dev version to try. What @kiwifb said is correct. If any error, I will post the log. Thanks so much!

duytrung commented 7 years ago

Oh, where can I download the latest binary build of the software? I'm not used to with the compiling/making process. Thanks

roed314 commented 7 years ago

Have you looked at http://www.sagemath.org/download.html?

RainMountainSystems commented 6 years ago

Problems with Sagemath on new Fedora releases seems to be an ongoing problem. My impression is that Sagemath is a very low-priority item at Red Hat. I have been unable to get the regular Fedora 26 version (7.3) to work. The problem was reported in August 2017, but it's not clear that anyone is doing anything to fix the problem.

roed314 commented 6 years ago

Reported to Red Hat or to SageMath? I don't think Red Hat is likely to do anything with such bug reports....

saraedum commented 6 years ago

It's been a while with no feedback here, so I am closing this. @duytrung, if you want to continue this discussion, you might want to create a ticket for it on https://trac.sagemath.org.