Installing an old version of scikit-learn

喜你入骨 提交于 2020-08-27 22:03:59

问题


Problem Statment

I'm trying to run some old python code that requires scikit-learn 18.0 but the current version I have installed is 0.22 and so I'm getting a warning/invalid data when I run the code.


What I've Tried

I tried installing the specific version both in the terminal: python -m pip install scikit-learn==0.18 and in conda and none of that has worked. All I can install is v 0.22. Help? Thanks.


Error In Terminal

ERROR: Failed building wheel for scikit-learn
Running setup.py clean for scikit-learn
Failed to build scikit-learn
Installing collected packages: scikit-learn
Found existing installation: scikit-learn 0.22.1
Uninstalling scikit-learn-0.22.1:
Successfully uninstalled scikit-learn-0.22.1
Running setup.py install for scikit-learn ... error
ERROR: Command errored out with exit status 1:

Error through conda environment:

PackagesNotFoundError: The following packages are not available from current channels:
- scikit-learn==0.18 this was after creating and activating the new environment


回答1:


Tackling your issues one at a time:

python -m pip install scikit-learn==0.18 fails

This is probably due to the fact that scikit-learn==0.18, if you check on pypi only has whl files for python 3.5 and 2.7 for windows, therefore pip downloads the source distribution and then fails in compiling it, probably because it doesn't work with newer python versions

The following packages are not available from current channels

This happens, because scikit-learn==18.0 simply does not exist in the default conda channels. On my win64 machine, the oldesst version that I can install is 19.0 (You can check by typing conda search scikit-learn in the cmd), so unfortunately no way to install using the default conda channels. There is a channel called free (found through the anaconda website) that has scikit-learn 18.0, so you could install with:

conda install -c free scikit-learn 

To also make sure that the python version is compatible, I would just create a fitting environment:

conda create -n py35 -c free scikit-learn=0.18.0



回答2:


I have a guess about what it's happening and I think you will find you answear here:

First let's check the python version installed within your system:

python --version                                                                                                                                                                              

> Python 3.8.0

If you're ready set and updated this should be your current python version, and I guess here lies the problem. You can check sickit-learn versions from its official pypi distribution page here. If you check the docs you will see that the package was meant to 2.7 or 3.5 python distributions.

So to run your code I guess the best way would be to use virtualenv or virtualenvwrapper (my personal choice) where you can create a clean env for your tests.

# 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

If everything is ok now you can run your code with no problems!

Remember!!!! Python 2 is deprecated and you should update your code to use a more recent python distribution.

Also, virtualenv is a good practice when working with python, if you don't know it take your time to set up!



来源:https://stackoverflow.com/questions/59974146/installing-an-old-version-of-scikit-learn

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!