Установка старой версии scikit-learn - PullRequest
3 голосов
/ 29 января 2020

Состояние проблемы

Я пытаюсь запустить какой-то старый python код, который требует scikit-learn 18.0, но у меня установлена ​​текущая версия 0.22, и поэтому я при запуске кода выдается предупреждение / недействительные данные.


Что я пробовал

Я попытался установить указанную версию c в терминал: python -m pip install scikit-learn==0.18 и conda, и ничего из этого не сработало. Все, что я могу установить, это v 0.22. Помогите? Спасибо.


Ошибка в терминале

ОШИБКА: сбой при сборке колеса для scikit-learn
Запуск setup.py clean для scikit-learn
Не удалось собрать scikit-learn
Установка собранных пакетов: scikit-learn
Найдена существующая установка: scikit-learn 0.22.1
Удаление scikit-learn-0.22.1:
Успешно удален scikit -learn-0.22.1
Запуск setup.py install для scikit-learn ... ошибка
ОШИБКА: ошибка команды при состоянии выхода 1:

Ошибка в среде conda:

PackagesNotFoundError: Следующие пакеты недоступны по текущим каналам:
- scikit-learn == 0,18 это было после создания и активации новой среды

Ответы [ 2 ]

4 голосов
/ 30 января 2020

Решение ваших проблем по одному:

python -m pip install scikit-learn==0.18 не удается

Это, вероятно, связано с тем, что scikit-learn==0.18, если вы проверка на pypi имеет только whl файлы для python 3.5 и 2.7 для windows, поэтому pip загружает исходный дистрибутив и затем не может его скомпилировать, возможно, потому что он не работает с более новыми python версии

Следующие пакеты недоступны для текущих каналов

Это происходит потому, что scikit-learn==18.0 просто не существует в стандартных conda каналах. На моей машине с win64 самая старая версия, которую я могу установить, - 19.0 (Вы можете проверить, набрав conda search scikit-learn в cmd), поэтому, к сожалению, нет способа установить, используя каналы по умолчанию conda. Существует канал под названием free (найденный через веб-сайт anaconda ), который имеет scikit-learn 18.0, поэтому вы можете установить его с помощью:

conda install -c free scikit-learn 

. Также убедитесь, что * Версия 1036 * совместима, я бы просто создал подходящую среду:

conda create -n py35 -c free scikit-learn=0.18.0
0 голосов
/ 29 января 2020

У меня есть предположение о том, что происходит, и я думаю, что вы найдете ответ здесь:

Сначала давайте проверим версию python, установленную в вашей системе:

python --version                                                                                                                                                                              

> Python 3.8.0

Если вы готовы установить и обновить это должна быть ваша текущая python версия, и я думаю, что здесь кроется проблема. Вы можете проверить версии sickit-learn на официальной странице распространения pypi здесь . Если вы проверите документы, то увидите, что пакет предназначен для дистрибутивов 2.7 или 3.5 python.

Так что для запуска вашего кода, я думаю, лучшим способом было бы использовать virtualenv или virtualenvwrapper (мой личный выбор), где вы можете создать чистый env для ваших тестов.

# On your terminal
# First let's check if python2 is installed

python2 --version                                                                                                                                                                             > Python 2.7.17

# and pip

python2 -m pip --version                                                                                                                                                                      
> pip 19.3 from /usr/lib/python2.7/site-packages/pip (python 2.7)

# Now create a virtual env using virtualenvwrapper and python2 as our main python

mkdir py2
mkvirtualenv -p python2 -a py2  py2 

# After that the python command will be binded to your python2 installation
python --version
> Python 2.7.17

# Now lets install sckit lib
python -m pip install scikit-learn==0.18

python -m pip freeze                                                                                                                                                                      
> DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
> scikit-learn==0.18

Если все в порядке, теперь вы можете запустить свой код без проблем!

Помните !!!! Python 2 устарел , и вы должны обновить свой код, чтобы использовать более свежий python дистрибутив.

Кроме того, virtualenv это хорошая практика при работе с python, если вы не знаете, что на это нужно время!

...