我使用的是python 3.5,所有软件包都是以下版本
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
我使用的是windows os。
当我使用scikit_learn时,我收到以下消息,
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
这是我第一次提问
请帮助解决它。
答案 0 :(得分:13)
你的numpy版本是numpy-1.12.0b1。那&#34; b1&#34;造成了这个问题。如果您查看sklearn/utils/fixes.py,您会看到有一个parse_version函数可以尝试创建所有内容:
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__)
但是在&#34; 0b1&#34;我们将采用ValueError路径。所以这一行
if np_version < (1, 12, 0):
比较
>>> (1, 12, '0b1') < (1, 12, 0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unorderable types: str() < int()
不会起作用。虽然这肯定是他们的错误,但最简单的解决方案是更改你的numpy版本(例如,通过切换回1.11.2)。但是如果你想保留当前版本的numpy,你可以手动编辑fixes.py
来改变
if np_version < (1, 12, 0):
到
if np_version < (1, 12):
因此它不会尝试将0
与"0b1"
进行比较,但会返回False。