2

自分のマシンに scikit-learn をインストールしようとすると、問題が発生します。Homebrew の Python 2.7.5 で OS X 10.8.4 を実行しており、Scipy と Numpy の最新バージョンがインストールされています。

Pip を介して scikit-learn をインストールしようとしただけでなく、最新のソースを複製してゼロから構築することも試みました。これは、構築しようとするたびに得られるものです。ここで何が起こっているのか分かりますか?

1 warning and 3 errors generated.
In file included from sklearn/feature_extraction/_hashing.c:258:
In file included from /usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include/numpy/arrayobject.h:15:
In file included from /usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include/numpy/ndarrayobject.h:17:
In file included from /usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include/numpy/ndarraytypes.h:1728:
/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include/numpy/npy_deprecated_api.h:11:2: warning: "Using deprecated NumPy API, disable it by #defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-W#warnings]
#warning "Using deprecated NumPy API, disable it by #defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION"
 ^
sklearn/feature_extraction/_hashing.c:2439:15: error: assigning to 'int' from incompatible type 'void'
    __pyx_t_2 = PyErr_BadArgument(); if (unlikely(__pyx_t_2 == 0)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
              ^ ~~~~~~~~~~~~~~~~~~~
sklearn/feature_extraction/_hashing.c:4833:96: error: use of undeclared identifier 'PyBoolObject'
  __pyx_ptype_7cpython_4bool_bool = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "bool", sizeof(PyBoolObject), 0); if (unlikely(!__pyx_ptype_7cpython_4bool_bool)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
                                                                                               ^
sklearn/feature_extraction/_hashing.c:4834:105: error: use of undeclared identifier 'PyComplexObject'
  __pyx_ptype_7cpython_7complex_complex = __Pyx_ImportType(__Pyx_BUILTIN_MODULE_NAME, "complex", sizeof(PyComplexObject), 0); if (unlikely(!__pyx_ptype_7cpython_7complex_complex)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
                                                                                                        ^
1 warning and 3 errors generated.
error: Command "cc -fno-strict-aliasing -fno-common -dynamic -I/usr/local/include -I/usr/local/opt/sqlite/include -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/Tk.framework/Versions/8.5/Headers -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include -I/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include -I/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c sklearn/feature_extraction/_hashing.c -o build/temp.macosx-10.8-x86_64-2.7/sklearn/feature_extraction/_hashing.o" failed with exit status 1
4

2 に答える 2

0

OSX 10.9 Mavericks にアップグレードした後、同じビルドの問題が発生しました。次を実行して解決しました:

xcode-select --install

XCode コマンド ライン ツールを更新します。

また、すべての自作ライブラリを次のようにアップグレードしました。

brew update
brew doctor
# fix all reported issues
brew upgrade

C++ 標準ライブラリの互換性のないバージョンに対して以前にビルドされたいくつかの依存関係をアンインストールして再インストールする必要がありました。

于 2013-10-25T14:33:03.497 に答える
0

OSX 10.9 Mavericks で同様の問題が発生しました。OSX 10.8.4 で役立つか、将来システムをアップグレードする場合に役立つかもしれません。この回答に基づいて、さらに調査した結果、XCode コマンド ライン ツールをインストールする必要があることがわかりました。これは通常、ターミナルで実行して取得します。

xcode-select --install

うまくいく場合は、この回答の最後にある Homebrew ステップに直接進みます。ただし、一部のユーザー (私自身) は、コマンド ライン ツールが Xcode で提供され、この方法では使用できなくなったため、これを実行する際に問題が発生する可能性があります。それはおそらく言うでしょう:

「ソフトウェア更新サーバーから現在利用できないため、ソフトウェアをインストールできません。」

Xcode のアップグレードまたは再インストールも機能しない可能性があることがわかりました。明らかに、この方法で提供されたわけではありません。幸いなことに、このコマンド ライン ツールを取得する別の方法があります (ここで読みました)。

  1. Xcodeを開く
  2. アプリケーション メニュー項目 "Xcode" で、[Open Developer Tool] > [More Developer Tools...] を選択します。
  3. これにより、多数のソフトウェアを含むサイトに移動します。「Command Line Tools (OS X Mavericks) for Xcode - Late October 2013」をダウンロードしてインストールしてください。
  4. Mavericks のユーザーでない場合は、独自のバージョンも見つかります。

次に、Scikit-Learn のインストールを再試行します。それでも解決しない場合は、Xcode が正しい場所を指していない可能性があります。これを試してください(ソースはこちら):

sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

またはそれ(ソースはこちら):

sudo xcode-select -switch /Library/Developer/CommandLineTools

最初のものXcode.appは私のために働いたものです。そして、このようにすることで、次の最後のステップである Homebrew でバグが発生する、Git コマンドラインが壊れていることで発生する別の問題も確実に防止できます。これは、Homebrew が適切に動作するために Git に依存しているためです。

自作ステップ:

brew update
brew doctor
# fix all reported issues
brew upgrade

それでも動作しない場合は、Homebrew ( Homebrew ホームページ) を再インストールして、もう一度やり直してください。これで問題が解決することを願っています:)

于 2013-11-08T03:12:09.250 に答える