Windows 7、Rは正常に動作します
python 2.7.10 | EPD 7.5-3(64ビット)、numpy、scipy、theanoなどは正常に動作します
手順:
python setup.py install
を呼び出します。これも、目に見えるエラーはありません。>>>import xgboost
File "<stdin>", line 1, in <module>
File "xgboost\__init__.py", line 11, in <module>
from .core import DMatrix, Booster
File "xgboost\core.py", line 83, in <module>
_LIB = _load_lib()
File "xgboost\core.py", line 77, in _load_lib
lib = ctypes.cdll.LoadLibrary(lib_path[0])
File "P:\Python\Python27\lib\ctypes\__init__.py", line 443, in LoadLibrary
return self._dlltype(name)
File "P:\Python\Python27\lib\ctypes\__init__.py", line 365, in __init__
self._handle = _dlopen(self._name, mode)
WindowsError: [Error 127] The specified procedure could not be found
core.pyをハッキングして、実際にロードしようとしているライブラリを確認しました:)
それは実際に正しいdllを探します/Sources/xgb/python-package/xgboost/../../lib/libxgboost.dll
まさにそれが置かれている場所で、数分前に新しく建てられました
xgboostをどのように構築しますか?
あなたはこれに従うべきです:
http://xgboost.readthedocs.io/en/latest/build.html#building -on-windows
私はあなたとまったく同じエラーを抱えていました。
マシンに他のバージョンのPythonをアンインストールして、再起動してみてください。 私はこれが良い解決策ではないことを知っていますが、それは私にとってはうまくいきます。
同じエラーが発生しましたが、修正により多くの質問に答えられなくなりました。 私はもともと、いくつかのより明確な方向性を使用してminGWでコンパイルしました。
何らかの理由で、システムパスの_beginning_に(私にとっては終了ではなく)mingwパスを設定することで、そのコンパイルの問題が解決したことが判明しました。
>>> dir = r'C:\Program Files\mingw-w64\x86_64-6.2.0-posix-seh-rt_v5-rev1\mingw64\bin'
>>> import os
>>> os.environ['PATH'].count(dir) # Here I show its already in the path at least once
1
>>> os.environ['PATH'].find(dir) # We see its at the end of my path
1491
>>> os.environ['PATH'] = dir + ';' + os.environ['PATH'] # I put it on the beginning of the path, NOT THE END.
>>> import xgboost # I modified core.py to print the directory of the requested dll. It imports successfully.
C:\Users\Joey\Anaconda2\lib\site-packages\xgboost-0.6-py2.7.egg\xgboost\libxgboost.dll
これが機能した唯一の方法です
要求されたdllのディレクトリは、失敗した場合と成功した場合の両方で同じであるため、そうではないことに注意してください。 変更されるのは、パス変数の先頭にmingw/binディレクトリを配置することだけです。 したがって、minGWまたはminGWとpythonの通信方法に問題がある可能性があると思います(ここでは専門家ではありません)。
実際の修正は、Visual Studioを使用してコンパイルし、cmakeをインストールして(インストール中にパスに追加してください!)、Visual Studioの指示に従うことでした(これは本当に詳しく説明する必要があります。誰もがこのようなことに精通しているわけではありません)。 つまり、合計:Git For Windowsを使用して指示に従い、リポジトリのクローンを作成し、cmakeをインストールして、パスに「cmake」を追加し、Visual Studioのインストール指示に従って、cmakeとVisual Studioを使用してビルドします(最新のVisual StudioCommunityEditionをインストールする場合まだ行っていません)、libxgboost.dllのみをpython-packagesディレクトリにコピーし、コマンドプロンプトを開いて、python-packagesから「pythonsetup.pyinstall」を実行します。
Visual Studioのインストールでは、システムがminGWのパスを知っている必要はありません。
最も参考になるコメント
同じエラーが発生しましたが、修正により多くの質問に答えられなくなりました。 私はもともと、いくつかのより明確な方向性を使用してminGWでコンパイルしました。
何らかの理由で、システムパスの_beginning_に(私にとっては終了ではなく)mingwパスを設定することで、そのコンパイルの問題が解決したことが判明しました。
これが機能した唯一の方法です
要求されたdllのディレクトリは、失敗した場合と成功した場合の両方で同じであるため、そうではないことに注意してください。 変更されるのは、パス変数の先頭にmingw/binディレクトリを配置することだけです。 したがって、minGWまたはminGWとpythonの通信方法に問題がある可能性があると思います(ここでは専門家ではありません)。
実際の修正は、Visual Studioを使用してコンパイルし、cmakeをインストールして(インストール中にパスに追加してください!)、Visual Studioの指示に従うことでした(これは本当に詳しく説明する必要があります。誰もがこのようなことに精通しているわけではありません)。 つまり、合計:Git For Windowsを使用して指示に従い、リポジトリのクローンを作成し、cmakeをインストールして、パスに「cmake」を追加し、Visual Studioのインストール指示に従って、cmakeとVisual Studioを使用してビルドします(最新のVisual StudioCommunityEditionをインストールする場合まだ行っていません)、libxgboost.dllのみをpython-packagesディレクトリにコピーし、コマンドプロンプトを開いて、python-packagesから「pythonsetup.pyinstall」を実行します。
Visual Studioのインストールでは、システムがminGWのパスを知っている必要はありません。