Hi!
I can't get sage to work when installing it with conda on a new MacBook Pro
with M2 chip and Ventura 13.3.
I tried
conda -n sage create sage=9.X python=3.Y
for (X,Y) = (5,10), (8,10), (8,11).
With Sage 9.5, I get the attached crash report.
With Sage 9.8, I get the following linking error below.
Cheers,
Matthias
(sage-py310) matthias@matthiass-air-2 ~ % sage
┌────────────────────────────────────────────────────────────────────┐
│ SageMath version 9.8, Release Date: 2023-02-11 │
│ Using Python 3.10.11. Type "help()" for help. │
└────────────────────────────────────────────────────────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Warning: sage.all is not available; this is a limited REPL. ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
sage: import sage.all
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
Cell In[1], line 1
----> 1 import sage.all
File
~/anaconda3/envs/sage-py310/lib/python3.10/site-packages/sage/all.py:168
166 from sage.modules.all import *
167 from sage.monoids.all import *
--> 168 from sage.algebras.all import *
169 from sage.modular.all import *
170 from sage.sat.all import *
File
~/anaconda3/envs/sage-py310/lib/python3.10/site-packages/sage/algebras/all.py:21
5
#*****************************************************************************
6 # Copyright (C) 2005 William Stein <[email protected]>
7 #
(...)
17 # http://www.gnu.org/licenses/
18
#*****************************************************************************
19 from sage.misc.lazy_import import lazy_import
---> 21 import sage.algebras.catalog as algebras
23 from .quatalg.all import *
24 from .steenrod.all import *
File
~/anaconda3/envs/sage-py310/lib/python3.10/site-packages/sage/algebras/catalog.py:84
1 r"""
2 Catalog of Algebras
3
(...)
80 <sage.algebras.yokonuma_hecke_algebra.YokonumaHeckeAlgebra>`
81 """
83 from sage.algebras.free_algebra import FreeAlgebra as Free
---> 84 from sage.algebras.quatalg.quaternion_algebra import
QuaternionAlgebra as Quaternion
85 from sage.algebras.steenrod.steenrod_algebra import SteenrodAlgebra
as Steenrod
86 from
sage.algebras.finite_dimensional_algebras.finite_dimensional_algebra import
FiniteDimensionalAlgebra as FiniteDimensional
File
~/anaconda3/envs/sage-py310/lib/python3.10/site-packages/sage/algebras/quatalg/quaternion_algebra.py:68
61 from operator import itemgetter
63 from .quaternion_algebra_element import (
64 QuaternionAlgebraElement_abstract,
65 QuaternionAlgebraElement_generic,
66 QuaternionAlgebraElement_rational_field,
67 QuaternionAlgebraElement_number_field)
---> 68 from . import quaternion_algebra_cython
70 from sage.modular.modsym.p1list import P1List
72 from sage.misc.cachefunc import cached_method
File
~/anaconda3/envs/sage-py310/lib/python3.10/site-packages/sage/algebras/quatalg/quaternion_algebra_cython.pyx:1,
in init sage.algebras.quatalg.quaternion_algebra_cython
(build/cythonized/sage/algebras/quatalg/quaternion_algebra_cython.cpp:6484)()
----> 1 # distutils: language = c++
2 # distutils: libraries = gmp m NTL_LIBRARIES
3 # distutils: extra_compile_args = NTL_CFLAGS
File
~/anaconda3/envs/sage-py310/lib/python3.10/site-packages/sage/matrix/matrix_integer_dense.pyx:1,
in init sage.matrix.matrix_integer_dense
(build/cythonized/sage/matrix/matrix_integer_dense.cpp:59322)()
----> 1 # -*- coding: utf-8 -*-
2 # distutils: extra_compile_args = NTL_CFLAGS M4RI_CFLAGS
3 # distutils: libraries = iml NTL_LIBRARIES gmp m CBLAS_LIBRARIES
ImportError:
dlopen(/Users/matthias/anaconda3/envs/sage-py310/lib/python3.10/site-packages/sage/libs/linbox/
linbox_flint_interface.cpython-310-darwin.so, 0x0002): symbol not found in
flat namespace
'__ZN6FFPACK8CharPolyIN6Givaro8Poly1DomINS1_7ModularIddvEENS1_5DenseEEEEERNT_7ElementERKS7_S9_mNS7_8Domain_t11Element_ptrEmRNSC_8RandIterENS_19FFPACK_CHARPOLY_TAGEm'
--
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/CALB88e892xzZ_wBXqofXRP0cRQFc75jYt3vVo-hfTFr%3Dbh5Rmw%40mail.gmail.com.
***************************************************************************
IPython post-mortem report
{'commit_hash': 'fd4cac190',
'commit_source': 'installation',
'default_encoding': 'utf-8',
'ipython_path':
'/Users/matthias/anaconda3/envs/sage/lib/python3.10/site-packages/IPython',
'ipython_version': '7.33.0',
'os_name': 'posix',
'platform': 'macOS-13.3-arm64-arm-64bit',
'sys_executable': '/Users/matthias/anaconda3/envs/sage/bin/python',
'sys_platform': 'darwin',
'sys_version': '3.10.11 | packaged by conda-forge | (main, May 10 2023, '
'19:01:19) [Clang 14.0.6 ]'}
***************************************************************************
***************************************************************************
Crash traceback:
---------------------------------------------------------------------------
---------------------------------------------------------------------------
ImportError Python 3.10.11: /Users/matthias/anaconda3/envs/sage/bin/python
Wed May 24 15:00:52 2023
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.
~/anaconda3/envs/sage/bin/sage-ipython in <module>
1 #!/Users/matthias/anaconda3/envs/sage/bin/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 0x1026d7f10>>
16 app.start()
~/anaconda3/envs/sage/lib/python3.10/site-packages/traitlets/config/application.py
in inner(app=<sage.repl.interpreter.SageTerminalApp object>, *args=(),
**kwargs={})
98 T = TypeVar("T", bound=Callable[..., Any])
99
100
101 def catch_config_error(method: T) -> T:
102 """Method decorator for catching invalid config
(Trait/ArgumentErrors) during init.
103
104 On a TraitError (generally caused by bad config), this will print
the trait's
105 message, and exit the app.
106
107 For use on init methods, to prevent invoking excepthook on invalid
input.
108 """
109
110 @functools.wraps(method)
111 def inner(app, *args, **kwargs):
112 try:
--> 113 return method(app, *args, **kwargs)
global method = undefined
app = <sage.repl.interpreter.SageTerminalApp object at 0x1026d7f10>
args = ()
kwargs = {}
114 except (TraitError, ArgumentError) as e:
115 app.log.fatal("Bad config encountered during
initialization: %s", e)
116 app.log.debug("Config at the time: %s", app.config)
117 app.exit(1)
118
119 return cast(T, inner)
120
121
122 class ApplicationError(Exception):
123 pass
124
125
126 class LevelFormatter(logging.Formatter):
127 """Formatter with additional `highlevel` record
128
~/anaconda3/envs/sage/lib/python3.10/site-packages/IPython/terminal/ipapp.py in
initialize(self=<sage.repl.interpreter.SageTerminalApp object>, argv=None)
304
305 return super(TerminalIPythonApp, self).parse_command_line(argv)
306
307 @catch_config_error
308 def initialize(self, argv=None):
309 """Do actions after construct, but before starting the app."""
310 super(TerminalIPythonApp, self).initialize(argv)
311 if self.subapp is not None:
312 # don't bother initializing further, starting subapp
313 return
314 # print self.extra_args
315 if self.extra_args and not self.something_to_run:
316 self.file_to_run = self.extra_args[0]
317 self.init_path()
318 # create the shell
--> 319 self.init_shell()
self.init_shell = <bound method SageTerminalApp.init_shell of
<sage.repl.interpreter.SageTerminalApp object at 0x1026d7f10>>
320 # and draw the banner
321 self.init_banner()
322 # Now a variety of things that happen after the banner is
printed.
323 self.init_gui_pylab()
324 self.init_extensions()
325 self.init_code()
326
327 def init_shell(self):
328 """initialize the InteractiveShell instance"""
329 # Create an InteractiveShell instance.
330 # shell.display_banner should always be False for the terminal
331 # based app, because we call shell.show_banner() by hand below
332 # so the banner shows *before* all extension loading stuff.
333 self.shell = self.interactive_shell_class.instance(parent=self,
334 profile_dir=self.profile_dir,
~/anaconda3/envs/sage/lib/python3.10/site-packages/sage/repl/interpreter.py in
init_shell(self=<sage.repl.interpreter.SageTerminalApp object>)
774
775 # Load the %lprun extension if available
776 try:
777 import line_profiler
778 assert line_profiler # silence pyflakes
779 except ImportError:
780 pass
781 else:
782 self.extensions.append('line_profiler')
783
784 if self.shell.has_sage_extensions:
785 self.extensions.remove(SAGE_EXTENSION)
786
787 # load sage extension here to get a crash if
788 # something is wrong with the sage library
--> 789 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 0x1074bb7c0>>
global SAGE_EXTENSION = 'sage'
~/anaconda3/envs/sage/lib/python3.10/site-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 0x1074bb7c0>>
mod = <module 'sage' from
'/Users/matthias/anaconda3/envs/sage/lib/python3.10/site-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:
~/anaconda3/envs/sage/lib/python3.10/site-packages/IPython/core/extensions.py
in _call_load_ipython_extension(self=<IPython.core.extensions.ExtensionManager
object>, mod=<module 'sage' from
'/Users/matthias/anaconda3/e...e/lib/python3.10/site-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
0x102944280>
self.shell = <sage.repl.interpreter.SageTerminalInteractiveShell object
at 0x105873580>
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'
~/anaconda3/envs/sage/lib/python3.10/site-packages/sage/repl/__init__.py in
load_ipython_extension(*args=(<sage.repl.interpreter.SageTerminalInteractiveShell
object>,))
1 # IPython calls this when "%load_ext sage.repl" is used.
2 # The Sage application loads it when starting up.
3 def load_ipython_extension(*args):
4 import sage.repl.ipython_extension
----> 5 sage.repl.ipython_extension.load_ipython_extension(*args)
sage.repl.ipython_extension.load_ipython_extension = <function
load_ipython_extension at 0x1077e29e0>
args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at
0x105873580>,)
6
7
8 # The above used to be in sage.__init__, allowing users to use
"%load_ext sage".
9 # But we are clearing out the __init__.py file as a preparation for
10 # making sage a native namespace package.
11 #
12 # So we make "%load_ext sage" work by monkey-patching the function
13 # into the sage package upon importing sage.repl.
14 import sage
15 sage.load_ipython_extension = load_ipython_extension
~/anaconda3/envs/sage/lib/python3.10/site-packages/sage/repl/ipython_extension.py
in wrapper(*args=(<sage.repl.interpreter.SageTerminalInteractiveShell
object>,), **kwargs={})
602 ....: if work:
603 ....: return 'foo worked'
604 ....: raise RuntimeError("foo didn't work")
605 sage: foo(False)
606 Traceback (most recent call last):
607 ...
608 RuntimeError: foo didn't work
609 sage: foo(True)
610 'foo worked'
611 sage: foo(False)
612 sage: foo(True)
613 """
614 @wraps(func)
615 def wrapper(*args, **kwargs):
616 if not wrapper.has_run:
--> 617 result = func(*args, **kwargs)
result = undefined
global func = undefined
args = (<sage.repl.interpreter.SageTerminalInteractiveShell object at
0x105873580>,)
kwargs = {}
618 wrapper.has_run = True
619 return result
620 wrapper.has_run = False
621 return wrapper
622
623
624 @run_once
625 def load_ipython_extension(ip):
626 """
627 Load the extension in IPython.
628 """
629 # this modifies ip
630 SageCustomizations(shell=ip)
~/anaconda3/envs/sage/lib/python3.10/site-packages/sage/repl/ipython_extension.py
in
load_ipython_extension(ip=<sage.repl.interpreter.SageTerminalInteractiveShell
object>)
615 def wrapper(*args, **kwargs):
616 if not wrapper.has_run:
617 result = func(*args, **kwargs)
618 wrapper.has_run = True
619 return result
620 wrapper.has_run = False
621 return wrapper
622
623
624 @run_once
625 def load_ipython_extension(ip):
626 """
627 Load the extension in IPython.
628 """
629 # this modifies ip
--> 630 SageCustomizations(shell=ip)
global SageCustomizations = <class
'sage.repl.ipython_extension.SageCustomizations'>
global shell = undefined
ip = <sage.repl.interpreter.SageTerminalInteractiveShell object at
0x105873580>
~/anaconda3/envs/sage/lib/python3.10/site-packages/sage/repl/ipython_extension.py
in __init__(self=<sage.repl.ipython_extension.SageCustomizations object>,
shell=<sage.repl.interpreter.SageTerminalInteractiveShell object>)
419 def __init__(self, shell=None):
420 """
421 Initialize the Sage plugin.
422 """
423 self.shell = shell
424
425 self.auto_magics = SageMagics(shell)
426 self.shell.register_magics(self.auto_magics)
427
428 import sage.misc.edit_module as edit_module
429 self.shell.set_hook('editor', edit_module.edit_devel)
430
431 self.init_inspector()
432 self.init_line_transforms()
433
--> 434 import sage.all # until sage's import hell is fixed
sage.all = undefined
435
436 self.shell.verbose_quit = True
437 self.set_quit_hook()
438
439 self.register_interface_magics()
440
441 if SAGE_IMPORTALL == 'yes':
442 self.init_environment()
443
444 def register_interface_magics(self):
445 """
446 Register magics for each of the Sage interfaces
447 """
448 from sage.repl.interface_magic import InterfaceMagic
449 InterfaceMagic.register_all(self.shell)
~/anaconda3/envs/sage/lib/python3.10/site-packages/sage/all.py in <module>
116 from functools import reduce # in order to keep reduce in python3
117
118 import sage.misc.lazy_import
119
120 from sage.misc.all import * # takes a while
121 from sage.typeset.all import *
122 from sage.repl.all import *
123
124 from sage.misc.sh import sh
125
126 from sage.libs.all import *
127 from sage.data_structures.all import *
128 from sage.doctest.all import *
129
130 from sage.structure.all import *
--> 131 from sage.rings.all import *
global sage.rings.all = undefined
132 from sage.arith.all import *
133 from sage.matrix.all import *
134
135 from sage.symbolic.all import *
136 from sage.modules.all import *
137 from sage.monoids.all import *
138 from sage.algebras.all import *
139 from sage.modular.all import *
140 from sage.sat.all import *
141 from sage.schemes.all import *
142 from sage.graphs.all import *
143 from sage.groups.all import *
144 from sage.arith.power import generic_power as power
145 from sage.databases.all import *
146 from sage.categories.all import *
~/anaconda3/envs/sage/lib/python3.10/site-packages/sage/rings/all.py in <module>
72 from .real_mpfr import (RealField, RR,
73 create_RealNumber as RealNumber) # this is
used by the preparser to wrap real literals -- very important.
74 Reals = RealField
75
76 from .real_double import RealDoubleField, RDF, RealDoubleElement
77
78 from .real_lazy import RealLazyField, RLF, ComplexLazyField, CLF
79
80 from sage.rings.real_arb import RealBallField, RBF
81
82 # Polynomial Rings and Polynomial Quotient Rings
83 from .polynomial.all import *
84
85
86 # Algebraic numbers
---> 87 from .qqbar import (AlgebraicRealField, AA,
global qqbar = undefined
global AlgebraicRealField = undefined
global AA = undefined
global AlgebraicReal = undefined
global AlgebraicField = undefined
global QQbar = undefined
global AlgebraicNumber = undefined
global number_field_elements_from_algebraics = undefined
88 AlgebraicReal,
89 AlgebraicField, QQbar,
90 AlgebraicNumber,
91 number_field_elements_from_algebraics)
92 from .universal_cyclotomic_field import UniversalCyclotomicField, E
93
94 # Intervals
95 from .real_mpfi import (RealIntervalField,
96 RIF,
97 RealInterval)
98
99 # Complex numbers
100 from .complex_mpfr import ComplexField
101 from .complex_mpfr import create_ComplexNumber as ComplexNumber
102 Complexes = ComplexField
~/anaconda3/envs/sage/lib/python3.10/site-packages/sage/rings/qqbar.py in
<module>
2795
2796 if single_number:
2797 nums = nums[0]
2798
2799 if same_field:
2800 hom = fld.hom([exact_generator], codomain=algebraic_field)
2801
2802 return (fld, nums, hom)
2803
2804
2805 # Cache some commonly-used polynomial rings
2806 QQx = QQ['x']
2807 QQx_x = QQx.gen()
2808 QQy = QQ['y']
2809 QQy_y = QQy.gen()
-> 2810 QQxy = QQ['x', 'y']
global QQxy = undefined
global QQ = Rational Field
2811 QQxy_x = QQxy.gen(0)
2812 QQxy_y = QQxy.gen(1)
2813
2814
2815 def cmp_elements_with_same_minpoly(a, b, p):
2816 r"""
2817 Compare the algebraic elements ``a`` and ``b`` knowing that they
have the
2818 same minimal polynomial ``p``.
2819
2820 This is an helper function for comparison of algebraic elements
(i.e. the
2821 methods :meth:`AlgebraicNumber._richcmp_` and
2822 :meth:`AlgebraicReal._richcmp_`).
2823
2824 INPUT:
2825
~/anaconda3/envs/sage/lib/python3.10/site-packages/sage/structure/parent.pyx in
sage.structure.parent.Parent.__getitem__
(build/cythonized/sage/structure/parent.c:11478)()
1261 sage: class A(Parent):
1262 ....: def __init__(self):
1263 ....: Parent.__init__(self, category=As())
1264 sage: a = A()
1265 sage: a[1]
1266 'coucou'
1267 """
1268 try:
1269 meth = super(Parent, self).__getitem__
1270 except AttributeError:
1271 # needed when self is a Cython object
1272 try:
1273 meth = self.getattr_from_category('__getitem__')
1274 except AttributeError:
1275 return self.list()[n]
-> 1276 return meth(n)
global meth = undefined
global n = undefined
1277
1278
#########################################################################
1279 # Generators and Homomorphisms
1280
#########################################################################
1281
1282 def _is_valid_homomorphism_(self, codomain, im_gens, base_map=None):
1283 r"""
1284 Return True if ``im_gens`` defines a valid homomorphism
1285 from self to codomain; otherwise return False.
1286
1287 If determining whether or not a homomorphism is valid has not
1288 been implemented for this ring, then a NotImplementedError
exception
1289 is raised.
1290 """
1291 raise NotImplementedError("Verification of correctness of
homomorphisms from %s not yet implemented." % self)
~/anaconda3/envs/sage/lib/python3.10/site-packages/sage/categories/rings.py in
__getitem__(self=Rational Field, arg=('x', 'y'))
1162 and
elt.imag().is_zero()):
1163 emb = RLF(elt)
1164 else:
1165 emb = CLF(elt)
1166 return self.extension(minpolys[0], names[0],
embedding=emb)
1167 try:
1168 # Doing the extension all at once is best, if
possible...
1169 return self.extension(minpolys, names)
1170 except (TypeError, ValueError):
1171 # ...but we can also construct it iteratively
1172 return reduce(lambda R, ext: R.extension(*ext),
zip(minpolys, names), self)
1173
1174 # 2. Otherwise, try to return a polynomial ring
1175
1176 from sage.rings.polynomial.polynomial_ring_constructor
import PolynomialRing
-> 1177 return PolynomialRing(self, elts)
PolynomialRing = <function PolynomialRing at 0x117db0700>
self = Rational Field
elts = ('x', 'y')
1178
1179 def free_module(self, base=None, basis=None, map=True):
1180 """
1181 Return a free module `V` over the specified subring
together with maps to and from `V`.
1182
1183 The default implementation only supports the case that the
base ring is the ring itself.
1184
1185 INPUT:
1186
1187 - ``base`` -- a subring `R` so that this ring is isomorphic
1188 to a finite-rank free `R`-module `V`
1189
1190 - ``basis`` -- (optional) a basis for this ring over the
base
1191
1192 - ``map`` -- boolean (default ``True``), whether to return
~/anaconda3/envs/sage/lib/python3.10/site-packages/sage/rings/polynomial/polynomial_ring_constructor.py
in PolynomialRing(base_ring=Rational Field, *args=(('x', 'y'),), **kwds={})
632 names = normalize_names(n, names)
633
634 # At this point, we have only handled the "names" keyword if it was
635 # needed. Since we know the variable names, it would logically be
636 # an error to specify an additional "names" keyword. However,
637 # people often abuse the preparser with
638 # R.<x> = PolynomialRing(QQ, 'x')
639 # and we allow this for historical reasons. However, the names
640 # must be consistent!
641 if "names" in kwds:
642 kwnames = kwds.pop("names")
643 if kwnames != names:
644 raise TypeError("variable names specified twice
inconsistently: %r and %r" % (names, kwnames))
645
646 if multivariate or len(names) != 1:
--> 647 return _multi_variate(base_ring, names, **kwds)
global _multi_variate = <function _multi_variate at 0x117e62170>
base_ring = Rational Field
global names = undefined
kwds = {}
648 else:
649 return _single_variate(base_ring, names, **kwds)
650
651
652 def unpickle_PolynomialRing(base_ring, arg1=None, arg2=None,
sparse=False):
653 """
654 Custom unpickling function for polynomial rings.
655
656 This has the same positional arguments as the old
657 ``PolynomialRing`` constructor before :trac:`23338`.
658 """
659 args = [arg for arg in (arg1, arg2) if arg is not None]
660 return PolynomialRing(base_ring, *args, sparse=sparse)
661
662 from sage.misc.persist import register_unpickle_override
~/anaconda3/envs/sage/lib/python3.10/site-packages/sage/rings/polynomial/polynomial_ring_constructor.py
in _multi_variate(base_ring=Rational Field, names=('x', 'y'), sparse=True,
order=Degree reverse lexicographic term order, implementation=None)
760 from sage.rings.polynomial.term_order import TermOrder
761 n = len(names)
762 order = TermOrder(order, n)
763
764 # "implementation" must be last
765 key = [base_ring, names, n, order, implementation]
766 R = _get_from_cache(key)
767 if R is not None:
768 return R
769
770 # Multiple arguments for the "implementation" keyword which actually
771 # yield the same implementation. We need this for caching.
772 implementation_names = set([implementation])
773
774 if implementation is None or implementation == "singular":
--> 775 from sage.rings.polynomial.multi_polynomial_libsingular import
MPolynomialRing_libsingular
global sage.rings.polynomial.multi_polynomial_libsingular = undefined
MPolynomialRing_libsingular = undefined
776 try:
777 R = MPolynomialRing_libsingular(base_ring, n, names, order)
778 except (TypeError, NotImplementedError):
779 if implementation is not None:
780 raise
781 else:
782 implementation_names.update([None, "singular"])
783
784 if R is None and implementation is None:
785 # Interpret implementation=None as implementation="generic"
786 implementation = "generic"
787 implementation_names.add(implementation)
788 key[-1] = implementation
789 R = _get_from_cache(key)
790
~/anaconda3/envs/sage/lib/python3.10/site-packages/sage/rings/polynomial/multi_polynomial_libsingular.pyx
in init sage.rings.polynomial.multi_polynomial_libsingular
(build/cythonized/sage/rings/polynomial/multi_polynomial_libsingular.cpp:50118)()
----> 1 r"""
2 Multivariate Polynomials via libSINGULAR
3
4 This module implements specialized and optimized implementations for
5 multivariate polynomials over many coefficient rings, via a shared
library
6 interface to SINGULAR. In particular, the following coefficient rings
are
7 supported by this implementation:
8
9 - the rational numbers `\QQ`,
10
11 - the ring of integers `\ZZ`,
12
13 - `\ZZ/n\ZZ` for any integer `n`,
14
15 - finite fields `\GF{p^n}` for `p` prime and `n > 0`,
16
17 - and absolute number fields `\QQ(a)`.
18
19 EXAMPLES:
20
21 We show how to construct various multivariate polynomial rings::
22
23 sage: P.<x,y,z> = QQ[]
24 sage: P
25 Multivariate Polynomial Ring in x, y, z over Rational Field
26
27 sage: f = 27/113 * x^2 + y*z + 1/2; f
28 27/113*x^2 + y*z + 1/2
29
30 sage: P.term_order()
31 Degree reverse lexicographic term order
~/anaconda3/envs/sage/lib/python3.10/site-packages/sage/libs/singular/singular.pyx
in init sage.libs.singular.singular
(build/cythonized/sage/libs/singular/singular.cpp:15820)()
1543 global _saved_verbose_options
1544 _saved_options = (int(singular_options), 0, 0)
1545 _saved_verbose_options = int(singular_verbose_options)
1546
1547 #On(SW_USE_NTL)
1548 On(SW_USE_EZGCD)
1549 Off(SW_USE_NTL_SORT)
1550
1551 WerrorS_callback = libsingular_error_callback
1552
1553 error_messages = []
1554
1555 # Save/restore the PATH because libSingular clobbers it:
1556 # https://github.com/Singular/Singular/issues/1119
1557 saved_PATH = os.environ["PATH"]
-> 1558 init_libsingular()
global init_libsingular = undefined
1559 os.environ["PATH"] = saved_PATH
1560
1561 cdef void libsingular_error_callback(const_char_ptr s):
1562 _s = char_to_str(s)
1563 error_messages.append(_s)
1564
1565 def get_resource(id):
1566 """
1567 Return a Singular "resource".
1568
1569 INPUT:
1570
1571 - ``id`` -- a single-character string; see
1572
https://github.com/Singular/Singular/blob/spielwiese/resources/feResource.cc
1573
~/anaconda3/envs/sage/lib/python3.10/site-packages/sage/libs/singular/singular.pyx
in sage.libs.singular.singular.init_libsingular
(build/cythonized/sage/libs/singular/singular.cpp:13090)()
1517 from sage.env import LIBSINGULAR_PATH
1518 lib = str_to_bytes(LIBSINGULAR_PATH, FS_ENCODING, "surrogateescape")
1519
1520 # This is a workaround for
https://github.com/Singular/Singular/issues/1113
1521 # and can be removed once that fix makes it into release of
Singular that
1522 # is supported by sage.
1523 from shutil import which
1524 from os.path import dirname
1525 os.environ["SINGULAR_BIN_DIR"] = dirname(which("Singular"))
1526
1527 import platform
1528 if not platform.system().startswith("CYGWIN"):
1529 handle = dlopen(lib, RTLD_GLOBAL|RTLD_LAZY)
1530 if not handle:
1531 err = dlerror()
-> 1532 raise ImportError(f"cannot load Singular library from
{LIBSINGULAR_PATH} ({err})")
global ImportError = undefined
1533
1534 # load SINGULAR
1535 siInit(lib)
1536
1537 if handle:
1538 dlclose(handle)
1539
1540 # we set and save some global Singular options
1541 singular_options = singular_options | Sy_bit(OPT_REDSB) |
Sy_bit(OPT_INTSTRATEGY) | Sy_bit(OPT_REDTAIL) | Sy_bit(OPT_REDTHROUGH)
1542 global _saved_options
1543 global _saved_verbose_options
1544 _saved_options = (int(singular_options), 0, 0)
1545 _saved_verbose_options = int(singular_verbose_options)
1546
1547 #On(SW_USE_NTL)
ImportError: cannot load Singular library from (b"dlopen(, 0x0009): tried: ''
(no such file), '/System/Volumes/Preboot/Cryptexes/OS' (not a file),
'/Users/matthias/anaconda3/envs/sage/lib/python3.10/site-packages/sage/libs/singular/../../../../../'
(not a file), '/Users/matthias/anaconda3/envs/sage/bin/../lib/' (not a file),
'/usr/lib/' (not a file, not in dyld cache), '' (no such file),
'/usr/local/lib/' (not a file), '/usr/lib/' (not a file, not in dyld cache)")
***************************************************************************
History of session input:
*** Last line of input (may not be in above history):