KeyError: '__reduce_cython__' при попытке импортировать пакет sklearn в приложение Django
При попытке запустить мое приложение Django с помощью python manage.py runserver я получаю следующую ошибку, связанную с импортом модуля scikit-learn:
File "sklearn\\metrics\\_pairwise_distances_reduction\\_argkmin.pyx", line 1, in init sklearn.metrics._pairwise_distances_reduction._argkmin
KeyError: '__reduce_cython__'
Это последняя строка в большом сообщении об ошибке, приведенном ниже. Я перепробовал все, что нашел в Интернете, включая:
- обновление всех пакетов
- деинсталляция и переустановка связанных пакетов
- проверка соблюдения зависимостей пакетов
- использование
pipdeptree, чтобы убедиться, что версии пакетов не конфликтуют - перезагрузка vscode, ноутбука и т.д.
Несмотря на это, каждый раз, когда я запускаю python manage.py runserver, появляется одна и та же ошибка.
Я использую pip для установки пакетов. Вот мои текущие версии пакетов в этом venv:
| Package | Version |
|---|---|
| asgiref | 3.7.2 |
| Cython | 3.0.10 |
| Django | 5.0.5 |
| django-cors-headers | 4.3.1 |
| django-environ | 0.11.2 |
| djangorestframework | 3.14.0 |
| joblib | 1.4.2 |
| numpy | 1.26.4 |
| packaging | 24.0 |
| pandas | 2.2.1 |
| pip | 24.0 |
| pipdeptree | 2.19.1 |
| psycopg | 3.1.18 |
| psycopg2-binary | 2.9.9 |
| python-dateutil | 2.9.0.post0 |
| pytz | 2024.1 |
| scikit-learn | 1.4.2 |
| scipy | 1.13.0 |
| six | 1.16.0 |
| sqlparse | 0.4.4 |
| stringcase | 1.2.0 |
| threadpoolctl | 3.5.0 |
| typing_extensions | 4.9.0 |
| tzdata | 2024.1 |
Интересно, что from sklearn.feature_extraction.text import TfidfVectorizer не вызывает никаких проблем, но from sklearn.metrics.pairwise import cosine_distances является строкой, вызывающей проблему.
Помогите, пожалуйста! Застрял на этом уже несколько дней.
Полное сообщение об ошибке: