I was using python 3.5 and all packages were the following versions
numpy-1.12.0b1+mkl-cp35-cp35m-win_amd64
scikit_learn-0.18.1-cp35-cp35m-win_amd64
scipy-0.18.1-cp35-cp35m-win_amd64
I use the windows os.
when I use scikit_learn, I got the following message ,
Traceback (most recent call last):
File "F:/liyulin/tf_idf2.py", line 7, in <module>
from sklearn import feature_extraction # sklearn是一个数据挖掘工具包
File "C:\Users\lijia_xin\AppData\Local\Programs\Python\Python35\lib\site-packages\sklearn\__init__.py", line 57, in <module>
from .base import clone
File "C:\Users\lijia_xin\AppData\Local\Programs\Python\Python35\lib\site-packages\sklearn\base.py", line 12, in <module>
from .utils.fixes import signature
File "C:\Users\lijia_xin\AppData\Local\Programs\Python\Python35\lib\site-packages\sklearn\utils\__init__.py", line 11, in <module>
from .validation import (as_float_array,
File "C:\Users\lijia_xin\AppData\Local\Programs\Python\Python35\lib\site-packages\sklearn\utils\validation.py", line 18, in <module>
from ..utils.fixes import signature
File "C:\Users\lijia_xin\AppData\Local\Programs\Python\Python35\lib\site-packages\sklearn\utils\fixes.py", line 406, in <module>
if np_version < (1, 12, 0):
TypeError: unorderable types: str() < int()
Process finished with exit code 1
This is my first time to ask questions
Kindly help in solving it.
Your version of numpy is numpy-1.12.0b1. That "b1" is causing the problem. If you look at sklearn/utils/fixes.py you see there's a parse_version function which tries to make everything ints:
def _parse_version(version_string):
version = []
for x in version_string.split('.'):
try:
version.append(int(x))
except ValueError:
# x may be of the form dev-1ea1592
version.append(x)
return tuple(version)
np_version = _parse_version(np.__version__)
but in the case of "0b1" we'll take the ValueError path. So this line
if np_version < (1, 12, 0):
compares
>>> (1, 12, '0b1') < (1, 12, 0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() < int()
which won't work. While this is definitely a bug on their part, the easiest solution is to change your version of numpy (say, by switching back to 1.11.2). But if you want to keep your current version of numpy, you could just edit fixes.py
manually to change
if np_version < (1, 12, 0):
into
if np_version < (1, 12):
so that it won't try to compare 0
with "0b1"
, but will return False instead.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With