2016-11-19 13 views
4

私は、Python 3.5を使用していたし、すべてのパッケージには、以下のバージョンはTypeError:unorderableタイプ:STR()<INT()

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 

これは親切にそれを解決するのに役立ち質問

を聞いて、私の最初の時間ですを得ました。

+2

@MoinuddinQuadriトレースバックは、インポートに失敗したことを明らかに示しています。外部パッケージが壊れているようです。 – freakish

答えて

13

お客様のnumpyのバージョンはnumpy-1.12.0b1です。その "b1"は問題を引き起こしています。

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__) 

が、「0B1」の場合には、我々はとValueErrorパスを取るよ:あなたはsklearn/utils/fixes.pyを見れば、あなたはそこにすべてのint型を作るしようとしparse_version機能があります参照してください。したがって、このライン

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ののあなたの現在のバージョンを保持したい場合は、それは"0b1"0を比較しようとしますが、しないようにしかし、あなただけ

if np_version < (1, 12): 

if np_version < (1, 12, 0): 

を変更するには、手動でfixes.pyを編集できます代わりにFalseを返します。

+0

それは私にとって完璧に機能しました!どうもありがとうございました! – Rod

関連する問題