It is a setup problem.  You need to uninstall the pip packages that were 
installed with the mathics package (and the mathics package itself) and 
install Mathics3 instead.

- Marc

On Sunday, March 15, 2026 at 6:54:19 AM UTC-5 [email protected] wrote:

> of course but to be honest still don't understand the problem i am facing
> i can't really determine if it's my setup problem or this an 
> existing issue in the source code itself
>
> On Sun, Mar 15, 2026 at 2:34 AM Travis Scrimshaw <[email protected]> 
> wrote:
>
>> It seems to me you would certainly want the interface to work in a manner 
>> that is consistent with the other interfaces.
>>
>> Best,
>> Travis
>>
>>
>> On Sunday, March 15, 2026 at 1:07:37 AM UTC+9 [email protected] 
>> wrote:
>>
>>>
>>> so i have install the package 
>>> `pip install mathics3` and i get this huge error log
>>> would this be the objective of the project 'Improve integration with 
>>> Mathics'
>>> or this an isolated error for machine because i can't really i identify 
>>> the error
>>> i thought it was a mismatch in npmath package but that didn't solve it 
>>> and there are a problem when calling the .sage() function to convert the 
>>> object to a sageobj
>>> (sage-dev) >>>    sage [develop] pip list | grep -i mathics
>>> Mathics_Scanner               2.0.0
>>> Mathics3                      9.0.0
>>> (sage-dev) >>>    sage [develop] python --version
>>> Python 3.12.12
>>> (sage-dev) >>>    sage [develop] which python
>>> /home/rashad/.conda/envs/sage-dev/bin/python
>>> (sage-dev) >>>    sage [develop]
>>> (sage-dev) >>>    sage [develop] ./sage
>>> ┌────────────────────────────────────────────────────────────────────┐
>>> │ SageMath version 10.9.beta7, Release Date: 2026-02-25              │
>>> │ Using Python 3.12.12. Type "help()" for help.                      │
>>> └────────────────────────────────────────────────────────────────────┘
>>> ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
>>> ┃ Warning: this is a prerelease version, and it may be unstable.     ┃
>>> ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
>>> sage: from sage.interfaces.mathics import mathics
>>> sage: mobj = mathics(x^2 - 1); mobj
>>>
>>> ---------------------------------------------------------------------------
>>> AttributeError                            Traceback (most recent call 
>>> last)
>>> File ~/sage/sage/src/sage/interfaces/interface.py:329, in 
>>> Interface._coerce_from_special_method(self, x)
>>>     328 try:
>>> --> 329     return (x.__getattribute__(s))(self)
>>>     330 except AttributeError:
>>>
>>> File sage/structure/sage_object.pyx:979, in 
>>> sage.structure.sage_object.SageObject._mathics_()
>>>
>>> File sage/symbolic/expression.pyx:1123, in 
>>> sage.symbolic.expression.Expression._interface_()
>>>
>>> File sage/structure/sage_object.pyx:723, in 
>>> sage.structure.sage_object.SageObject._interface_()
>>>
>>> File ~/sage/sage/src/sage/interfaces/interface.py:294, in 
>>> Interface.__call__(self, x, name)
>>>     293 if isinstance(x, str):
>>> --> 294     return cls(self, x, name=name)
>>>     295 try:
>>>     296     # Special methods do not and should not have an option to
>>>     297     # set the name directly, as the identifier assigned by the
>>>     298     # interface should stay consistent. An identifier with a
>>>     299     # user-assigned name might change its value, so we return a
>>>     300     # new element.
>>>
>>> File ~/sage/sage/src/sage/interfaces/interface.py:732, in 
>>> InterfaceElement.__init__(self, parent, value, is_name, name)
>>>     731 try:
>>> --> 732     self._name = parent._create(value, name=name)
>>>     733 except (TypeError, RuntimeError, ValueError) as x:
>>>
>>> File ~/sage/sage/src/sage/interfaces/interface.py:515, in 
>>> Interface._create(self, value, name)
>>>     514 name = self._next_var_name() if name is None else name
>>> --> 515 self.set(name, value)
>>>     516 return name
>>>
>>> File ~/sage/sage/src/sage/interfaces/mathics.py:596, in 
>>> Mathics.set(self, var, value)
>>>     595 cmd = f'{var}={value};'
>>> --> 596 _ = self.eval(cmd)
>>>
>>> File ~/sage/sage/src/sage/interfaces/mathics.py:579, in 
>>> Mathics.eval(self, code, *args, **kwds)
>>>     570 """
>>>     571 Evaluates a command inside the Mathics interpreter and returns 
>>> the output
>>>     572 in printable form.
>>>    (...)    577     '2'
>>>     578 """
>>> --> 579 res = self._eval(code)
>>>     580 if res.result == 'Null':
>>>
>>> File ~/sage/sage/src/sage/interfaces/mathics.py:562, in 
>>> Mathics._eval(self, code)
>>>     553 """
>>>     554 Evaluates a command inside the Mathics interpreter and returns 
>>> the output
>>>     555 as a Mathics result.
>>>    (...)    560     <Integer: 2>
>>>     561 """
>>> --> 562 self._lazy_init()
>>>     563 S = self._session
>>>
>>> File ~/sage/sage/src/sage/interfaces/mathics.py:499, in 
>>> Mathics._lazy_init(self)
>>>     498 self._initialized = True
>>> --> 499 self._start()
>>>
>>> File ~/sage/sage/src/sage/interfaces/mathics.py:514, in 
>>> Mathics._start(self)
>>>     513 if not self._session:
>>> --> 514     from mathics.session import MathicsSession
>>>     515     from mathics.core.load_builtin import 
>>> import_and_load_builtins
>>>
>>> File 
>>> ~/.conda/envs/sage-dev/lib/python3.12/site-packages/mathics/session.py:19
>>>      17 from mathics_scanner.location import ContainerKind
>>> ---> 19 from mathics.core.definitions import Definitions
>>>      20 from mathics.core.evaluation import Evaluation, Result
>>>
>>> File 
>>> ~/.conda/envs/sage-dev/lib/python3.12/site-packages/mathics/core/definitions.py:17
>>>      15 from mathics_scanner.tokeniser import full_names_pattern
>>> ---> 17 from mathics.core.atoms import Integer, String
>>>      18 from mathics.core.attributes import A_NO_ATTRIBUTES
>>>
>>> File 
>>> ~/.conda/envs/sage-dev/lib/python3.12/site-packages/mathics/core/atoms.py:50
>>>      47 T = TypeVar("T")
>>> ---> 50 class Number(Atom, ImmutableValueMixin, NumericOperators, 
>>> Generic[T]):
>>>      51     """
>>>      52     Different kinds of Mathics Numbers, the main built-in 
>>> subclasses
>>>      53     being: Integer, Rational, Real, Complex.
>>>      54     """
>>>
>>> File 
>>> ~/.conda/envs/sage-dev/lib/python3.12/site-packages/mathics/core/atoms.py:119,
>>>  
>>> in Number()
>>>     117     return True
>>> --> 119 def to_mpmath(self, precision: Optional[int] = None) -> 
>>> mpmath.ctx_mp_python.mpf:
>>>     120     """
>>>     121     Convert self.value to an mpmath number with precision 
>>> ``precision``
>>>     122     If ``precision`` is None, use mpmath's default precision.
>>>    (...)    127     change the implementation accordingly.
>>>     128     """
>>>
>>> AttributeError: module 'mpmath.ctx_mp_python' has no attribute 'mpf'
>>>
>>> During handling of the above exception, another exception occurred:
>>>
>>> TypeError                                 Traceback (most recent call 
>>> last)
>>> Cell In[2], line 1
>>> ----> 1 mobj = mathics(x**Integer(2) - Integer(1)); mobj
>>>
>>> File ~/sage/sage/src/sage/interfaces/interface.py:301, in 
>>> Interface.__call__(self, x, name)
>>>     294     return cls(self, x, name=name)
>>>     295 try:
>>>     296     # Special methods do not and should not have an option to
>>>     297     # set the name directly, as the identifier assigned by the
>>>     298     # interface should stay consistent. An identifier with a
>>>     299     # user-assigned name might change its value, so we return a
>>>     300     # new element.
>>> --> 301     result = self._coerce_from_special_method(x)
>>>     302     return result if name is None else result.name
>>> (new_name=name)
>>>     303 except TypeError:
>>>
>>> File ~/sage/sage/src/sage/interfaces/interface.py:331, in 
>>> Interface._coerce_from_special_method(self, x)
>>>     329     return (x.__getattribute__(s))(self)
>>>     330 except AttributeError:
>>> --> 331     return self(x._interface_init_())
>>>
>>> File sage/symbolic/expression.pyx:1151, in 
>>> sage.symbolic.expression.Expression._interface_init_()
>>>
>>> TypeError: _interface_init_() takes exactly 1 positional argument (0 
>>> given)
>>> sage:
>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "sage-devel" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>> To view this discussion visit 
>> https://groups.google.com/d/msgid/sage-devel/4ea9449d-9ead-4f51-81d6-e51a0624fa29n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/sage-devel/4ea9449d-9ead-4f51-81d6-e51a0624fa29n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/sage-devel/7d6c4c48-85ca-4d06-9491-35b748d9e455n%40googlegroups.com.

Reply via email to