mdickinson / bigfloat

Python wrapper for MPFR, providing high-precision floating-point arithmetic
GNU Lesser General Public License v3.0
43 stars 11 forks source link

It WONT INSTALL!!!!!!!!!!11!!!!11!1! #119

Closed MunaAlaneme closed 4 months ago

MunaAlaneme commented 6 months ago

Collecting bigfloat Using cached bigfloat-0.4.0.tar.gz (258 kB) Preparing metadata (setup.py) ... done Requirement already satisfied: six in c:\users\suhai\appdata\local\programs\python\python312\lib\site-packages (from bigfloat) (1.16.0) Building wheels for collected packages: bigfloat Building wheel for bigfloat (setup.py) ... error error: subprocess-exited-with-error

× python setup.py bdist_wheel did not run successfully. │ exit code: 1 ╰─> [25 lines of output] running bdist_wheel running build running build_py creating build creating build\lib.win-amd64-cpython-312 creating build\lib.win-amd64-cpython-312\bigfloat copying bigfloat\context.py -> build\lib.win-amd64-cpython-312\bigfloat copying bigfloat\core.py -> build\lib.win-amd64-cpython-312\bigfloat copying bigfloat\formatting.py -> build\lib.win-amd64-cpython-312\bigfloat copying bigfloat\ieee.py -> build\lib.win-amd64-cpython-312\bigfloat copying bigfloat\mpfr_supplemental.py -> build\lib.win-amd64-cpython-312\bigfloat copying bigfloat\rounding_mode.py -> build\lib.win-amd64-cpython-312\bigfloat copying bigfloat\version.py -> build\lib.win-amd64-cpython-312\bigfloat copying bigfloat__init__.py -> build\lib.win-amd64-cpython-312\bigfloat creating build\lib.win-amd64-cpython-312\bigfloat\test copying bigfloat\test\test_bigfloat.py -> build\lib.win-amd64-cpython-312\bigfloat\test copying bigfloat\test\test_context.py -> build\lib.win-amd64-cpython-312\bigfloat\test copying bigfloat\test\test_formatting.py -> build\lib.win-amd64-cpython-312\bigfloat\test copying bigfloat\test\test_mpfr.py -> build\lib.win-amd64-cpython-312\bigfloat\test copying bigfloat\test\test_rounding_mode.py -> build\lib.win-amd64-cpython-312\bigfloat\test copying bigfloat\test\test_all.py -> build\lib.win-amd64-cpython-312\bigfloat\test copying bigfloat\test__init__.py -> build\lib.win-amd64-cpython-312\bigfloat\test running build_ext building 'mpfr' extension error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/ [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for bigfloat Running setup.py clean for bigfloat Failed to build bigfloat ERROR: Could not build wheels for bigfloat, which is required to install pyproject.toml-based projects PS D:\Muna's Useless Python Stuff> python.exe -m pip install bigfloat Collecting bigfloat Using cached bigfloat-0.4.0.tar.gz (258 kB) Preparing metadata (setup.py) ... done Requirement already satisfied: six in c:\users\suhai\appdata\local\programs\python\python312\lib\site-packages (from bigfloat) (1.16.0) Building wheels for collected packages: bigfloat Building wheel for bigfloat (setup.py) ... error error: subprocess-exited-with-error

× python setup.py bdist_wheel did not run successfully. │ exit code: 1 ╰─> [25 lines of output] running bdist_wheel running build running build_py creating build creating build\lib.win-amd64-cpython-312 creating build\lib.win-amd64-cpython-312\bigfloat copying bigfloat\context.py -> build\lib.win-amd64-cpython-312\bigfloat copying bigfloat\core.py -> build\lib.win-amd64-cpython-312\bigfloat copying bigfloat\formatting.py -> build\lib.win-amd64-cpython-312\bigfloat copying bigfloat\ieee.py -> build\lib.win-amd64-cpython-312\bigfloat copying bigfloat\mpfr_supplemental.py -> build\lib.win-amd64-cpython-312\bigfloat copying bigfloat\rounding_mode.py -> build\lib.win-amd64-cpython-312\bigfloat copying bigfloat\version.py -> build\lib.win-amd64-cpython-312\bigfloat copying bigfloat__init__.py -> build\lib.win-amd64-cpython-312\bigfloat creating build\lib.win-amd64-cpython-312\bigfloat\test copying bigfloat\test\test_bigfloat.py -> build\lib.win-amd64-cpython-312\bigfloat\test copying bigfloat\test\test_context.py -> build\lib.win-amd64-cpython-312\bigfloat\test copying bigfloat\test\test_formatting.py -> build\lib.win-amd64-cpython-312\bigfloat\test copying bigfloat\test\test_mpfr.py -> build\lib.win-amd64-cpython-312\bigfloat\test copying bigfloat\test\test_rounding_mode.py -> build\lib.win-amd64-cpython-312\bigfloat\test copying bigfloat\test\test_all.py -> build\lib.win-amd64-cpython-312\bigfloat\test copying bigfloat\test__init__.py -> build\lib.win-amd64-cpython-312\bigfloat\test running build_ext building 'mpfr' extension error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/ [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for bigfloat Running setup.py clean for bigfloat Failed to build bigfloat ERROR: Could not build wheels for bigfloat, which is required to install pyproject.toml-based projects

MunaAlaneme commented 6 months ago

pygame 2.5.2 (SDL 2.28.3, Python 3.12.3) Hello from the pygame community. https://www.pygame.org/contribute.html PS D:\Muna's Useless Python Stuff> d:; cd 'd:\Muna''s Useless Python Stuff'; & 'c:\Users\suhai\AppData\Local\Programs\Python\Python312\python3123.exe' 'c:\Users\suhai.cursor\extensions\ms-python.debugpy-2024.2.0-win32-x64\bundled\libs\debugpy\adapter/../..\debugpy\launcher' '50351' '--' 'd:\Muna''s Useless Python Stuff\GameLauncher\assets\games\ClickerGame\ClickerGame 2.py' pygame 2.5.2 (SDL 2.28.3, Python 3.12.3) Hello from the pygame community. https://www.pygame.org/contribute.html Traceback (most recent call last): File "c:\Users\suhai\AppData\Local\Programs\Python\Python312\Lib\runpy.py", line 198, in _run_module_as_main return _run_code(code, main_globals, None, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "c:\Users\suhai\AppData\Local\Programs\Python\Python312\Lib\runpy.py", line 88, in _run_code exec(code, run_globals) File "c:\Users\suhai.cursor\extensions\ms-python.debugpy-2024.2.0-win32-x64\bundled\libs\debugpy\adapter/../..\debugpy\launcher/../..\debugpy__main.py", line 39, in cli.main() File "c:\Users\suhai.cursor\extensions\ms-python.debugpy-2024.2.0-win32-x64\bundled\libs\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 430, in main run() File "c:\Users\suhai.cursor\extensions\ms-python.debugpy-2024.2.0-win32-x64\bundled\libs\debugpy\adapter/../..\debugpy\launcher/../..\debugpy/..\debugpy\server\cli.py", line 284, in run_file runpy.run_path(target, run_name="main") File "c:\Users\suhai.cursor\extensions\ms-python.debugpy-2024.2.0-win32-x64\bundled\libs\debugpy_vendored\pydevd_pydevd_bundle\pydevd_runpy.py", line 321, in run_path return _run_module_code(code, init_globals, run_name, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "c:\Users\suhai.cursor\extensions\ms-python.debugpy-2024.2.0-win32-x64\bundled\libs\debugpy_vendored\pydevd_pydevd_bundle\pydevd_runpy.py", line 135, in _run_module_code _run_code(code, mod_globals, init_globals, File "c:\Users\suhai.cursor\extensions\ms-python.debugpy-2024.2.0-win32-x64\bundled\libs\debugpy_vendored\pydevd_pydevd_bundle\pydevd_runpy.py", line 124, in _run_code exec(code, run_globals) File "d:\Muna's Useless Python Stuff\GameLauncher\assets\games\ClickerGame\ClickerGame 2.py", line 3, in from bigfloat import * File "c:\Users\suhai\AppData\Local\Programs\Python\Python312\Lib\bigfloat\init__.py", line 193, in from bigfloat.core import ( File "c:\Users\suhai\AppData\Local\Programs\Python\Python312\Lib\bigfloat\core.py", line 29, in import mpfr ModuleNotFoundError: No module named 'mpfr'

benjaminmesser commented 5 months ago

@MunaAlaneme Unfortunately it seems like this package only supports up to python 3.8 based on the PyPi page, which is really a shame because that means I probably won't be able to use it either, it's just way too much hassle and I have other packages that I would probably be using simultaneously that require newer versions of python. I understand not getting up to 3.12 yet, but 3.8 is like 5 years old now so hopefully the devs can at least bring this up to 3.11 sometime soon. @mdickinson

benjaminmesser commented 5 months ago

To add to this, I get the following error when I try to install on python 3.11:

Building wheel for bigfloat (setup.py) ... error

...

mpfr.c
mpfr.c(213): fatal error C1083: Cannot open include file: 'longintrepr.h': No such file or directory
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.39.33519\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2

so it seems like it is the mpfr library which is trying to call longintrepr.h, which as of Python 3.11, has been moved. From the docs:

The non-limited API files cellobject.h, classobject.h, code.h, context.h, funcobject.h, genobject.h and longintrepr.h have been moved to the Include/cpython directory. Moreover, the eval.h header file was removed. These files must not be included directly, as they are already included in Python.h: Include Files. If they have been included directly, consider including Python.h instead.

Curious what your thoughts are on how this might be fixed @MunaAlaneme, because as far as I can tell there are no direct references to longintrepr.h in this repo, it just seems to be the mpfr library which calls this.

Perhaps this is something that must be fixed in the Cython configurations?

mdickinson commented 5 months ago

@MunaAlaneme @benjaminmesser Sorry for the difficulties.

so hopefully the devs can at least bring this up to 3.11 sometime soon

There's only one "dev", namely me, and I'm afraid I don't really have the resources for maintenance of this project at this point. If anyone is interested in helping out with maintenance, I'd be very happy to collaborate. Failing that, I should probably update the README and archive the repo. I'll try to make time for that at some point soon.

Have you considered gmpy2? It provides much the same functionality that this project does, along with providing wrappers for all the other types that GMP provides (big integers, rationals, etc.).

MunaAlaneme commented 4 months ago

thaks