Can't install on Python 3.12
I tried to install the lightfm package on Python 3.12
$ python -m venv venv
$ source venv/bin/activate
$ pip install lightfm
Collecting lightfm
Using cached lightfm-1.17.tar.gz (316 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... error
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> [20 lines of output]
Traceback (most recent call last):
File "/tmp/venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
main()
File "/tmp/venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel
return hook(config_settings)
^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-lgz3q2o2/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 325, in get_requires_for_build_wheel
return self._get_build_requires(config_settings, requirements=['wheel'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/pip-build-env-lgz3q2o2/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "/tmp/pip-build-env-lgz3q2o2/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 487, in run_setup
super().run_setup(setup_script=setup_script)
File "/tmp/pip-build-env-lgz3q2o2/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 11, in <module>
AttributeError: 'dict' object has no attribute '__LIGHTFM_SETUP__'
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
I tried installing wheel and setuptools beforehand, and I get another different error:
Logs after installing setuptools and wheel
pip install lightfm
Collecting lightfm
Using cached lightfm-1.17.tar.gz (316 kB)
Preparing metadata (setup.py) ... done
Collecting numpy (from lightfm)
Using cached numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)
Collecting scipy>=0.17.0 (from lightfm)
Using cached scipy-1.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (60 kB)
Collecting requests (from lightfm)
Using cached requests-2.31.0-py3-none-any.whl.metadata (4.6 kB)
Collecting scikit-learn (from lightfm)
Using cached scikit_learn-1.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)
Collecting charset-normalizer<4,>=2 (from requests->lightfm)
Using cached charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (33 kB)
Collecting idna<4,>=2.5 (from requests->lightfm)
Using cached idna-3.7-py3-none-any.whl.metadata (9.9 kB)
Collecting urllib3<3,>=1.21.1 (from requests->lightfm)
Using cached urllib3-2.2.1-py3-none-any.whl.metadata (6.4 kB)
Collecting certifi>=2017.4.17 (from requests->lightfm)
Using cached certifi-2024.2.2-py3-none-any.whl.metadata (2.2 kB)
Collecting joblib>=1.2.0 (from scikit-learn->lightfm)
Using cached joblib-1.4.2-py3-none-any.whl.metadata (5.4 kB)
Collecting threadpoolctl>=2.0.0 (from scikit-learn->lightfm)
Using cached threadpoolctl-3.5.0-py3-none-any.whl.metadata (13 kB)
Using cached scipy-1.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (38.2 MB)
Using cached numpy-1.26.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.0 MB)
Using cached requests-2.31.0-py3-none-any.whl (62 kB)
Using cached scikit_learn-1.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.2 MB)
Using cached certifi-2024.2.2-py3-none-any.whl (163 kB)
Using cached charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (141 kB)
Using cached idna-3.7-py3-none-any.whl (66 kB)
Using cached joblib-1.4.2-py3-none-any.whl (301 kB)
Using cached threadpoolctl-3.5.0-py3-none-any.whl (18 kB)
Using cached urllib3-2.2.1-py3-none-any.whl (121 kB)
Building wheels for collected packages: lightfm
Building wheel for lightfm (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [224 lines of output]
/tmp/venv/lib/python3.12/site-packages/setuptools/dist.py:476: SetuptoolsDeprecationWarning: Invalid dash-separated options
!!
********************************************************************************
Usage of dash-separated 'description-file' will not be supported in future
versions. Please use the underscore name 'description_file' instead.
By 2024-Sep-26, you need to update your project and remove deprecated calls
or your builds will no longer be supported.
See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
********************************************************************************
!!
opt = self.warn_dash_deprecation(opt, section)
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-312
creating build/lib.linux-x86_64-cpython-312/lightfm
copying lightfm/__init__.py -> build/lib.linux-x86_64-cpython-312/lightfm
copying lightfm/_lightfm_fast.py -> build/lib.linux-x86_64-cpython-312/lightfm
copying lightfm/cross_validation.py -> build/lib.linux-x86_64-cpython-312/lightfm
copying lightfm/data.py -> build/lib.linux-x86_64-cpython-312/lightfm
copying lightfm/evaluation.py -> build/lib.linux-x86_64-cpython-312/lightfm
copying lightfm/lightfm.py -> build/lib.linux-x86_64-cpython-312/lightfm
creating build/lib.linux-x86_64-cpython-312/lightfm/datasets
copying lightfm/datasets/__init__.py -> build/lib.linux-x86_64-cpython-312/lightfm/datasets
copying lightfm/datasets/_common.py -> build/lib.linux-x86_64-cpython-312/lightfm/datasets
copying lightfm/datasets/movielens.py -> build/lib.linux-x86_64-cpython-312/lightfm/datasets
copying lightfm/datasets/stackexchange.py -> build/lib.linux-x86_64-cpython-312/lightfm/datasets
copying lightfm/_lightfm_fast_no_openmp.c -> build/lib.linux-x86_64-cpython-312/lightfm
copying lightfm/_lightfm_fast_openmp.c -> build/lib.linux-x86_64-cpython-312/lightfm
running build_ext
building 'lightfm._lightfm_fast_openmp' extension
creating build/temp.linux-x86_64-cpython-312
creating build/temp.linux-x86_64-cpython-312/lightfm
gcc -fno-strict-overflow -DNDEBUG -g -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -g -ffile-prefix-map=/build/python/src=/usr/src/debug/python -flto=auto -ffat-lto-objects -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -g -ffile-prefix-map=/build/python/src=/usr/src/debug/python -flto=auto -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -g -ffile-prefix-map=/build/python/src=/usr/src/debug/python -flto=auto -fPIC -I/tmp/venv/include -I/usr/include/python3.12 -c lightfm/_lightfm_fast_openmp.c -o build/temp.linux-x86_64-cpython-312/lightfm/_lightfm_fast_openmp.o -ffast-math -march=native -fopenmp
lightfm/_lightfm_fast_openmp.c: In function ‘__pyx_pf_7lightfm_20_lightfm_fast_openmp_9CSRMatrix_2__reduce_cython__’:
lightfm/_lightfm_fast_openmp.c:3597:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
3597 | __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_CSRMatrix); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/python3.12/dictobject.h:90,
from /usr/include/python3.12/Python.h:64,
from lightfm/_lightfm_fast_openmp.c:22:
/usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag;
| ^~~~~~~~~~~~~~
lightfm/_lightfm_fast_openmp.c:3643:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
3643 | __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_CSRMatrix); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag;
| ^~~~~~~~~~~~~~
lightfm/_lightfm_fast_openmp.c: In function ‘__pyx_pf_7lightfm_20_lightfm_fast_openmp_11FastLightFM_2__reduce_cython__’:
lightfm/_lightfm_fast_openmp.c:4491:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
4491 | __Pyx_GetModuleGlobalName(__pyx_t_20, __pyx_n_s_pyx_unpickle_FastLightFM); if (unlikely(!__pyx_t_20)) __PYX_ERR(1, 13, __pyx_L1_error)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag;
| ^~~~~~~~~~~~~~
lightfm/_lightfm_fast_openmp.c:4537:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
4537 | __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_n_s_pyx_unpickle_FastLightFM); if (unlikely(!__pyx_t_19)) __PYX_ERR(1, 15, __pyx_L1_error)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag;
| ^~~~~~~~~~~~~~
lightfm/_lightfm_fast_openmp.c: In function ‘__pyx_pf_7lightfm_20_lightfm_fast_openmp_2fit_warp’:
lightfm/_lightfm_fast_openmp.c:7025:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
7025 | __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 819, __pyx_L1_error)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag;
| ^~~~~~~~~~~~~~
lightfm/_lightfm_fast_openmp.c:7030:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
7030 | __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 819, __pyx_L1_error)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag;
| ^~~~~~~~~~~~~~
lightfm/_lightfm_fast_openmp.c:7108:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
7108 | __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 820, __pyx_L1_error)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag;
| ^~~~~~~~~~~~~~
lightfm/_lightfm_fast_openmp.c: In function ‘__pyx_pf_7lightfm_20_lightfm_fast_openmp_4fit_warp_kos’:
lightfm/_lightfm_fast_openmp.c:7922:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
7922 | __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 950, __pyx_L1_error)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag;
| ^~~~~~~~~~~~~~
lightfm/_lightfm_fast_openmp.c:7927:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
7927 | __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 950, __pyx_L1_error)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag;
| ^~~~~~~~~~~~~~
lightfm/_lightfm_fast_openmp.c:8005:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
8005 | __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 951, __pyx_L1_error)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag;
| ^~~~~~~~~~~~~~
lightfm/_lightfm_fast_openmp.c: In function ‘__pyx_pf_7lightfm_20_lightfm_fast_openmp_6fit_bpr’:
lightfm/_lightfm_fast_openmp.c:8929:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
8929 | __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1108, __pyx_L1_error)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag;
| ^~~~~~~~~~~~~~
lightfm/_lightfm_fast_openmp.c:8934:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
8934 | __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1108, __pyx_L1_error)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag;
| ^~~~~~~~~~~~~~
lightfm/_lightfm_fast_openmp.c:9012:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
9012 | __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1109, __pyx_L1_error)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag;
| ^~~~~~~~~~~~~~
lightfm/_lightfm_fast_openmp.c: In function ‘__pyx_pf___pyx_MemviewEnum___reduce_cython__’:
lightfm/_lightfm_fast_openmp.c:14112:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
14112 | __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag;
| ^~~~~~~~~~~~~~
lightfm/_lightfm_fast_openmp.c:14158:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
14158 | __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag;
| ^~~~~~~~~~~~~~
lightfm/_lightfm_fast_openmp.c: In function ‘__pyx_memview_slice’:
lightfm/_lightfm_fast_openmp.c:19295:3: warning: ‘Py_OptimizeFlag’ is deprecated [-Wdeprecated-declarations]
19295 | if (unlikely(!Py_OptimizeFlag)) {
| ^~
In file included from /usr/include/python3.12/Python.h:48:
/usr/include/python3.12/cpython/pydebug.h:13:37: note: declared here
13 | Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_OptimizeFlag;
| ^~~~~~~~~~~~~~~
lightfm/_lightfm_fast_openmp.c: In function ‘__Pyx_get_tp_dict_version’:
lightfm/_lightfm_fast_openmp.c:27791:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
27791 | return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
| ^~~~~~
/usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag;
| ^~~~~~~~~~~~~~
lightfm/_lightfm_fast_openmp.c: In function ‘__Pyx_get_object_dict_version’:
lightfm/_lightfm_fast_openmp.c:27803:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
27803 | return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
| ^~~~~~
/usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag;
| ^~~~~~~~~~~~~~
lightfm/_lightfm_fast_openmp.c: In function ‘__Pyx_object_dict_version_matches’:
lightfm/_lightfm_fast_openmp.c:27807:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
27807 | if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
| ^~
/usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag;
| ^~~~~~~~~~~~~~
lightfm/_lightfm_fast_openmp.c: In function ‘__Pyx__GetModuleGlobalName’:
lightfm/_lightfm_fast_openmp.c:27824:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
27824 | __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
| ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag;
| ^~~~~~~~~~~~~~
lightfm/_lightfm_fast_openmp.c: In function ‘__Pyx_Raise’:
lightfm/_lightfm_fast_openmp.c:28344:34: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘curexc_traceback’
28344 | PyObject* tmp_tb = tstate->curexc_traceback;
| ^~
lightfm/_lightfm_fast_openmp.c:28347:19: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘curexc_traceback’
28347 | tstate->curexc_traceback = tb;
| ^~
lightfm/_lightfm_fast_openmp.c: In function ‘__Pyx_PyInt_AddObjC’:
lightfm/_lightfm_fast_openmp.c:28981:51: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
28981 | const digit* digits = ((PyLongObject*)op1)->ob_digit;
| ^~
lightfm/_lightfm_fast_openmp.c: In function ‘__Pyx_CLineForTraceback’:
lightfm/_lightfm_fast_openmp.c:29295:9: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
29295 | __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag;
| ^~~~~~~~~~~~~~
lightfm/_lightfm_fast_openmp.c:29295:9: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
29295 | __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
22 | Py_DEPRECATED(3.12) uint64_t ma_version_tag;
| ^~~~~~~~~~~~~~
lightfm/_lightfm_fast_openmp.c: In function ‘__Pyx_PyInt_As_int’:
lightfm/_lightfm_fast_openmp.c:30607:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
30607 | const digit* digits = ((PyLongObject*)x)->ob_digit;
| ^~
lightfm/_lightfm_fast_openmp.c:30662:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
30662 | const digit* digits = ((PyLongObject*)x)->ob_digit;
| ^~
lightfm/_lightfm_fast_openmp.c: In function ‘__Pyx_PyInt_As_long’:
lightfm/_lightfm_fast_openmp.c:30803:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
30803 | const digit* digits = ((PyLongObject*)x)->ob_digit;
| ^~
lightfm/_lightfm_fast_openmp.c:30858:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
30858 | const digit* digits = ((PyLongObject*)x)->ob_digit;
| ^~
lightfm/_lightfm_fast_openmp.c: In function ‘__Pyx_PyInt_As_char’:
lightfm/_lightfm_fast_openmp.c:31037:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
31037 | const digit* digits = ((PyLongObject*)x)->ob_digit;
| ^~
lightfm/_lightfm_fast_openmp.c:31092:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
31092 | const digit* digits = ((PyLongObject*)x)->ob_digit;
| ^~
lightfm/_lightfm_fast_openmp.c: In function ‘__Pyx_PyIndex_AsSsize_t’:
lightfm/_lightfm_fast_openmp.c:31443:45: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
31443 | const digit* digits = ((PyLongObject*)b)->ob_digit;
| ^~
error: command '/usr/bin/gcc' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for lightfm
Running setup.py clean for lightfm
Failed to build lightfm
ERROR: Could not build wheels for lightfm, which is required to install pyproject.toml-based projects
Seconded.
`Collecting lightfm Using cached lightfm-1.17.tar.gz (316 kB) Preparing metadata (setup.py) ... done Requirement already satisfied: numpy in /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages (from lightfm) (1.26.4) Requirement already satisfied: scipy>=0.17.0 in /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages (from lightfm) (1.12.0) Requirement already satisfied: requests in /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages (from lightfm) (2.31.0) Requirement already satisfied: scikit-learn in /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages (from lightfm) (1.4.2) Requirement already satisfied: charset-normalizer<4,>=2 in /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages (from requests->lightfm) (3.3.2) Requirement already satisfied: idna<4,>=2.5 in /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages (from requests->lightfm) (3.6) Requirement already satisfied: urllib3<3,>=1.21.1 in /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages (from requests->lightfm) (2.2.1) Requirement already satisfied: certifi>=2017.4.17 in /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages (from requests->lightfm) (2024.2.2) Requirement already satisfied: joblib>=1.2.0 in /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages (from scikit-learn->lightfm) (1.2.0) Requirement already satisfied: threadpoolctl>=2.0.0 in /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages (from scikit-learn->lightfm) (3.4.0) Building wheels for collected packages: lightfm Building wheel for lightfm (setup.py) ... error error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully. │ exit code: 1 ╰─> [387 lines of output] Compiling without OpenMP support. /Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/setuptools/dist.py:476: SetuptoolsDeprecationWarning: Invalid dash-separated options !!
********************************************************************************
Usage of dash-separated 'description-file' will not be supported in future
versions. Please use the underscore name 'description_file' instead.
By 2024-Sep-26, you need to update your project and remove deprecated calls
or your builds will no longer be supported.
See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
********************************************************************************
!!
opt = self.warn_dash_deprecation(opt, section)
running bdist_wheel
running build
running build_py
creating build
creating build/lib.macosx-10.9-universal2-cpython-312
creating build/lib.macosx-10.9-universal2-cpython-312/lightfm
copying lightfm/lightfm.py -> build/lib.macosx-10.9-universal2-cpython-312/lightfm
copying lightfm/evaluation.py -> build/lib.macosx-10.9-universal2-cpython-312/lightfm
copying lightfm/__init__.py -> build/lib.macosx-10.9-universal2-cpython-312/lightfm
copying lightfm/_lightfm_fast.py -> build/lib.macosx-10.9-universal2-cpython-312/lightfm
copying lightfm/data.py -> build/lib.macosx-10.9-universal2-cpython-312/lightfm
copying lightfm/cross_validation.py -> build/lib.macosx-10.9-universal2-cpython-312/lightfm
creating build/lib.macosx-10.9-universal2-cpython-312/lightfm/datasets
copying lightfm/datasets/_common.py -> build/lib.macosx-10.9-universal2-cpython-312/lightfm/datasets
copying lightfm/datasets/__init__.py -> build/lib.macosx-10.9-universal2-cpython-312/lightfm/datasets
copying lightfm/datasets/movielens.py -> build/lib.macosx-10.9-universal2-cpython-312/lightfm/datasets
copying lightfm/datasets/stackexchange.py -> build/lib.macosx-10.9-universal2-cpython-312/lightfm/datasets
copying lightfm/_lightfm_fast_no_openmp.c -> build/lib.macosx-10.9-universal2-cpython-312/lightfm
copying lightfm/_lightfm_fast_openmp.c -> build/lib.macosx-10.9-universal2-cpython-312/lightfm
running build_ext
building 'lightfm._lightfm_fast_no_openmp' extension
creating build/temp.macosx-10.9-universal2-cpython-312
creating build/temp.macosx-10.9-universal2-cpython-312/lightfm
clang -fno-strict-overflow -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -O3 -Wall -arch arm64 -arch x86_64 -g -I/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12 -c lightfm/_lightfm_fast_no_openmp.c -o build/temp.macosx-10.9-universal2-cpython-312/lightfm/_lightfm_fast_no_openmp.o -ffast-math
lightfm/_lightfm_fast_no_openmp.c:3590:5: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pyx_unpickle_CSRMatrix); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 13, __pyx_L1_error)
^
lightfm/_lightfm_fast_no_openmp.c:1507:43: note: expanded from macro '__Pyx_GetModuleGlobalName'
(var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
^
lightfm/_lightfm_fast_no_openmp.c:1479:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
Py_DEPRECATED(3.12) uint64_t ma_version_tag;
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
^
lightfm/_lightfm_fast_no_openmp.c:3636:5: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_CSRMatrix); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
^
lightfm/_lightfm_fast_no_openmp.c:1507:43: note: expanded from macro '__Pyx_GetModuleGlobalName'
(var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
^
lightfm/_lightfm_fast_no_openmp.c:1479:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
Py_DEPRECATED(3.12) uint64_t ma_version_tag;
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
^
lightfm/_lightfm_fast_no_openmp.c:4484:5: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
__Pyx_GetModuleGlobalName(__pyx_t_20, __pyx_n_s_pyx_unpickle_FastLightFM); if (unlikely(!__pyx_t_20)) __PYX_ERR(1, 13, __pyx_L1_error)
^
lightfm/_lightfm_fast_no_openmp.c:1507:43: note: expanded from macro '__Pyx_GetModuleGlobalName'
(var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
^
lightfm/_lightfm_fast_no_openmp.c:1479:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
Py_DEPRECATED(3.12) uint64_t ma_version_tag;
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
^
lightfm/_lightfm_fast_no_openmp.c:4530:5: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
__Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_n_s_pyx_unpickle_FastLightFM); if (unlikely(!__pyx_t_19)) __PYX_ERR(1, 15, __pyx_L1_error)
^
lightfm/_lightfm_fast_no_openmp.c:1507:43: note: expanded from macro '__Pyx_GetModuleGlobalName'
(var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
^
lightfm/_lightfm_fast_no_openmp.c:1479:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
Py_DEPRECATED(3.12) uint64_t ma_version_tag;
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
^
lightfm/_lightfm_fast_no_openmp.c:6958:3: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 813, __pyx_L1_error)
^
lightfm/_lightfm_fast_no_openmp.c:1507:43: note: expanded from macro '__Pyx_GetModuleGlobalName'
(var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
^
lightfm/_lightfm_fast_no_openmp.c:1479:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
Py_DEPRECATED(3.12) uint64_t ma_version_tag;
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
^
lightfm/_lightfm_fast_no_openmp.c:6963:3: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 813, __pyx_L1_error)
^
lightfm/_lightfm_fast_no_openmp.c:1507:43: note: expanded from macro '__Pyx_GetModuleGlobalName'
(var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
^
lightfm/_lightfm_fast_no_openmp.c:1479:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
Py_DEPRECATED(3.12) uint64_t ma_version_tag;
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
^
lightfm/_lightfm_fast_no_openmp.c:7041:3: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 814, __pyx_L1_error)
^
lightfm/_lightfm_fast_no_openmp.c:1507:43: note: expanded from macro '__Pyx_GetModuleGlobalName'
(var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
^
lightfm/_lightfm_fast_no_openmp.c:1479:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
Py_DEPRECATED(3.12) uint64_t ma_version_tag;
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
^
lightfm/_lightfm_fast_no_openmp.c:7808:3: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 944, __pyx_L1_error)
^
lightfm/_lightfm_fast_no_openmp.c:1507:43: note: expanded from macro '__Pyx_GetModuleGlobalName'
(var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
^
lightfm/_lightfm_fast_no_openmp.c:1479:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
Py_DEPRECATED(3.12) uint64_t ma_version_tag;
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
^
lightfm/_lightfm_fast_no_openmp.c:7813:3: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 944, __pyx_L1_error)
^
lightfm/_lightfm_fast_no_openmp.c:1507:43: note: expanded from macro '__Pyx_GetModuleGlobalName'
(var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
^
lightfm/_lightfm_fast_no_openmp.c:1479:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
Py_DEPRECATED(3.12) uint64_t ma_version_tag;
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
^
lightfm/_lightfm_fast_no_openmp.c:7891:3: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 945, __pyx_L1_error)
^
lightfm/_lightfm_fast_no_openmp.c:1507:43: note: expanded from macro '__Pyx_GetModuleGlobalName'
(var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
^
lightfm/_lightfm_fast_no_openmp.c:1479:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
Py_DEPRECATED(3.12) uint64_t ma_version_tag;
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
^
lightfm/_lightfm_fast_no_openmp.c:8762:3: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1102, __pyx_L1_error)
^
lightfm/_lightfm_fast_no_openmp.c:1507:43: note: expanded from macro '__Pyx_GetModuleGlobalName'
(var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
^
lightfm/_lightfm_fast_no_openmp.c:1479:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
Py_DEPRECATED(3.12) uint64_t ma_version_tag;
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
^
lightfm/_lightfm_fast_no_openmp.c:8767:3: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1102, __pyx_L1_error)
^
lightfm/_lightfm_fast_no_openmp.c:1507:43: note: expanded from macro '__Pyx_GetModuleGlobalName'
(var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
^
lightfm/_lightfm_fast_no_openmp.c:1479:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
Py_DEPRECATED(3.12) uint64_t ma_version_tag;
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
^
lightfm/_lightfm_fast_no_openmp.c:8845:3: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
__Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1103, __pyx_L1_error)
^
lightfm/_lightfm_fast_no_openmp.c:1507:43: note: expanded from macro '__Pyx_GetModuleGlobalName'
(var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
^
lightfm/_lightfm_fast_no_openmp.c:1479:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
Py_DEPRECATED(3.12) uint64_t ma_version_tag;
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
^
lightfm/_lightfm_fast_no_openmp.c:13782:5: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
__Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 13, __pyx_L1_error)
^
lightfm/_lightfm_fast_no_openmp.c:1507:43: note: expanded from macro '__Pyx_GetModuleGlobalName'
(var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
^
lightfm/_lightfm_fast_no_openmp.c:1479:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
Py_DEPRECATED(3.12) uint64_t ma_version_tag;
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
^
lightfm/_lightfm_fast_no_openmp.c:13828:5: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
__Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_pyx_unpickle_Enum); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 15, __pyx_L1_error)
^
lightfm/_lightfm_fast_no_openmp.c:1507:43: note: expanded from macro '__Pyx_GetModuleGlobalName'
(var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\
^
lightfm/_lightfm_fast_no_openmp.c:1479:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
Py_DEPRECATED(3.12) uint64_t ma_version_tag;
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
^
lightfm/_lightfm_fast_no_openmp.c:18965:17: warning: 'Py_OptimizeFlag' is deprecated [-Wdeprecated-declarations]
if (unlikely(!Py_OptimizeFlag)) {
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/pydebug.h:13:1: note: 'Py_OptimizeFlag' has been explicitly marked deprecated here
Py_DEPRECATED(3.12) PyAPI_DATA(int) Py_OptimizeFlag;
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
^
lightfm/_lightfm_fast_no_openmp.c:27445:27: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
^
lightfm/_lightfm_fast_no_openmp.c:1479:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
Py_DEPRECATED(3.12) uint64_t ma_version_tag;
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
^
lightfm/_lightfm_fast_no_openmp.c:27457:36: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
^
lightfm/_lightfm_fast_no_openmp.c:1479:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
Py_DEPRECATED(3.12) uint64_t ma_version_tag;
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
^
lightfm/_lightfm_fast_no_openmp.c:27461:56: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
^
lightfm/_lightfm_fast_no_openmp.c:1479:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
Py_DEPRECATED(3.12) uint64_t ma_version_tag;
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
^
lightfm/_lightfm_fast_no_openmp.c:27478:5: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
__PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
^
lightfm/_lightfm_fast_no_openmp.c:1481:21: note: expanded from macro '__PYX_UPDATE_DICT_CACHE'
(version_var) = __PYX_GET_DICT_VERSION(dict);\
^
lightfm/_lightfm_fast_no_openmp.c:1479:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
Py_DEPRECATED(3.12) uint64_t ma_version_tag;
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
^
lightfm/_lightfm_fast_no_openmp.c:27998:36: error: no member named 'curexc_traceback' in 'struct _ts'
PyObject* tmp_tb = tstate->curexc_traceback;
~~~~~~ ^
lightfm/_lightfm_fast_no_openmp.c:28001:21: error: no member named 'curexc_traceback' in 'struct _ts'
tstate->curexc_traceback = tb;
~~~~~~ ^
lightfm/_lightfm_fast_no_openmp.c:28635:53: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)op1)->ob_digit;
~~~~~~~~~~~~~~~~~~~~ ^
lightfm/_lightfm_fast_no_openmp.c:28949:9: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
__PYX_PY_DICT_LOOKUP_IF_MODIFIED(
^
lightfm/_lightfm_fast_no_openmp.c:1486:16: note: expanded from macro '__PYX_PY_DICT_LOOKUP_IF_MODIFIED'
if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\
^
lightfm/_lightfm_fast_no_openmp.c:1479:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
Py_DEPRECATED(3.12) uint64_t ma_version_tag;
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
^
lightfm/_lightfm_fast_no_openmp.c:28949:9: warning: 'ma_version_tag' is deprecated [-Wdeprecated-declarations]
__PYX_PY_DICT_LOOKUP_IF_MODIFIED(
^
lightfm/_lightfm_fast_no_openmp.c:1490:30: note: expanded from macro '__PYX_PY_DICT_LOOKUP_IF_MODIFIED'
__pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\
^
lightfm/_lightfm_fast_no_openmp.c:1479:65: note: expanded from macro '__PYX_GET_DICT_VERSION'
#define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag)
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/cpython/dictobject.h:22:5: note: 'ma_version_tag' has been explicitly marked deprecated here
Py_DEPRECATED(3.12) uint64_t ma_version_tag;
^
/Library/Frameworks/Python.framework/Versions/3.12/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
#define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
^
lightfm/_lightfm_fast_no_openmp.c:30261:55: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)x)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
lightfm/_lightfm_fast_no_openmp.c:30316:55: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)x)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
lightfm/_lightfm_fast_no_openmp.c:30457:55: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)x)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
lightfm/_lightfm_fast_no_openmp.c:30512:55: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)x)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
lightfm/_lightfm_fast_no_openmp.c:30691:55: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)x)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
lightfm/_lightfm_fast_no_openmp.c:30746:55: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)x)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
lightfm/_lightfm_fast_no_openmp.c:31097:47: error: no member named 'ob_digit' in 'struct _longobject'
const digit* digits = ((PyLongObject*)b)->ob_digit;
~~~~~~~~~~~~~~~~~~ ^
22 warnings and 10 errors generated.
error: command '/usr/bin/clang' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for lightfm Running setup.py clean for lightfm Failed to build lightfm ERROR: Could not build wheels for lightfm, which is required to install pyproject.toml-based projects`
Can you try installing my forked version to see if it works?
pip install git+https://github.com/daviddavo/lightfm
Any solution around it? @daviddavo @K-Winkles
ModuleNotFoundError: No module named 'lightfm._lightfm_fast_no_openmp'
The only solution I found was recompiling using newest Cython and creating my own package.
pip install git+https://github.com/daviddavo/lightfm
I'm no expert on Cython, so I don't know what caveats does it have or If I broke something. All tests are passing, though.
Honestly I just downgraded to Python 3.10.10 and it started working for me again
The only solution I found was recompiling using newest Cython and creating my own package.
pip install git+https://github.com/daviddavo/lightfmI'm no expert on Cython, so I don't know what caveats does it have or If I broke something. All tests are passing, though.
Thanks, this worked just fine!
The only solution I found was recompiling using newest Cython and creating my own package.
pip install git+https://github.com/daviddavo/lightfmI'm no expert on Cython, so I don't know what caveats does it have or If I broke something. All tests are passing, though.
Thanks! worked
I had the same issue and I solved it in this way, I use pacman and yay as package managers.
Install python 3.10
yay -S python310
(I also suggest to use conda for scientific packages)
create a python310 venv with
python3.10 -m venv .venv
activate it with
source .venv/bin/activate
now with pip:
pip install lightfm
or with conda:
conda install conda-forge::lightfm
pip fails because it uses the prebuild wheels, which are not compatible with the latest python's version. Instead if you use conda it tells right away for what versions the build are for. You can also recompile them manually as stated from the other users if you want to.
A few suggestions
It is better to create a virtual environment (from now on venv) for every project you create with a requirements.txt and type there every package you'll need or you installed. This adds a layer of compatibility, it's also better if you specify the versions.
Adding a readme.md could help, just type the python and pip/conda versions you used to download the packages.
Creating a venv for every project is better than installing packages globally because, in this way, you won't have conflicts when you use an older version rather than the latest one.
I also suggest to add an alias in your .zshrc or .bashrc, or even better having a file with all the aliases and source it with .*rc:
alias vactivate = source ./.venv/bin/activate.
[note that you'll need to source .zshrc for it to take effect]