chenzhaiyu / abspy

A Python tool for 3D adaptive binary space partitioning and beyond
https://abspy.readthedocs.io/
MIT License
66 stars 10 forks source link

TypeError when importing SageMath==9.5 #13

Closed chenzhaiyu closed 9 months ago

chenzhaiyu commented 2 years ago

Environment:

How to reproduce

>>> from sage.all import polytopes, QQ, RR, Polyhedron

Error message

Traceback (most recent call last):
  File "/tmp/pycharm_project_629/tests/test_complex.py", line 4, in <module>
    from abspy import CellComplex
  File "/tmp/pycharm_project_629/abspy/__init__.py", line 1, in <module>
    from .complex import CellComplex
  File "/tmp/pycharm_project_629/abspy/complex.py", line 23, in <module>
    from sage.all import polytopes, QQ, RR, Polyhedron
  File "/workspace/env/miniconda3/envs/abspy/lib/python3.9/site-packages/sage/all.py", line 131, in <module>
    from sage.rings.all      import *
  File "/workspace/env/miniconda3/envs/abspy/lib/python3.9/site-packages/sage/rings/all.py", line 87, in <module>
    from .qqbar import (AlgebraicRealField, AA,
  File "/workspace/env/miniconda3/envs/abspy/lib/python3.9/site-packages/sage/rings/qqbar.py", line 2810, in <module>
    QQxy = QQ['x', 'y']
  File "sage/structure/parent.pyx", line 1276, in sage.structure.parent.Parent.__getitem__ (build/cythonized/sage/structure/parent.c:11472)
  File "/workspace/env/miniconda3/envs/abspy/lib/python3.9/site-packages/sage/categories/rings.py", line 1177, in __getitem__
    return PolynomialRing(self, elts)
  File "/workspace/env/miniconda3/envs/abspy/lib/python3.9/site-packages/sage/rings/polynomial/polynomial_ring_constructor.py", line 647, in PolynomialRing
    return _multi_variate(base_ring, names, **kwds)
  File "/workspace/env/miniconda3/envs/abspy/lib/python3.9/site-packages/sage/rings/polynomial/polynomial_ring_constructor.py", line 775, in _multi_variate
    from sage.rings.polynomial.multi_polynomial_libsingular import MPolynomialRing_libsingular
  File "sage/rings/polynomial/multi_polynomial_libsingular.pyx", line 1, in init sage.rings.polynomial.multi_polynomial_libsingular (build/cythonized/sage/rings/polynomial/multi_polynomial_libsingular.cpp:50113)
  File "sage/libs/singular/singular.pyx", line 1558, in init sage.libs.singular.singular (build/cythonized/sage/libs/singular/singular.cpp:15816)
  File "sage/libs/singular/singular.pyx", line 1525, in sage.libs.singular.singular.init_libsingular (build/cythonized/sage/libs/singular/singular.cpp:12934)
  File "/workspace/env/miniconda3/envs/abspy/lib/python3.9/posixpath.py", line 152, in dirname
    p = os.fspath(p)
TypeError: expected str, bytes or os.PathLike object, not NoneType

Process finished with exit code 1
chenzhaiyu commented 2 years ago

This appears with SageMath 9.5 only. A temporary workaround is to downgrade SageMath to <=9.4, e.g., mamba install sage=9.4.

Rifahaziz commented 1 year ago

I have run into the issue with importing sage.all. This solution is not working for windows. Anybody had any success in solving this on windows10? Looks like sage installation on windows isn't possible unless using it through a ubuntu subsystem (WSL).

chenzhaiyu commented 1 year ago

I just noticed Sage has discontinued their Windows binaries. It seems WSL or installing from the source are the only two options for Windows users. @Rifahaziz have you managed the situation? If so, it would be very helpful to share your experience!

chenzhaiyu commented 9 months ago

Tested PASS with sage=10.0 on Linux, with 9316511.