簡體   English   中英

在Java中使用scikit模型的jep

[英]jep for using scikit model in java

我正在使用jep在Java中運行python腳本,基本上我需要運行使用scikit軟件包的腳本。 但是當我嘗試運行時,它顯示了我無法理解的錯誤。

這是我程序中的代碼,Jep jep = new Jep(); jep.eval(“ import sklearn”);

它顯示以下錯誤,但是sklearn在python中工作得很好。 2016年7月6日下午5:31:50 JepEx主要SEVERE:null jep.JepException:jep.JepException::/usr/local/lib/python2.7/dist-packages/sklearn/__check_build/_check_build.so:未定義的符號: _PyThreadState_Current


/usr/local/lib/python2.7/dist-packages/sklearn/ check_build的內容:setup.py __init .pyc _check_build.so build init .py setup.pyc


似乎scikit-learn的構建不正確。

如果您已經從源代碼安裝了scikit-learn,請不要忘記在使用之前構建該軟件包:在源目錄中運行python setup.py installmake

如果您使用了安裝程序,請檢查它是否適合您的Python版本,操作系統和平台。 在jep.Jep.eval(Jep.java:485)在JepEx.executeCommand(JepEx.java:26)在JepEx.main(JepEx.java:38)處原因:jep.JepException::/ usr / local / lib / python2.7 / dist-packages / sklearn / __ check_build / _check_build.so:未定義符號:_PyThreadState_Current


/usr/local/lib/python2.7/dist-packages/sklearn/ check_build的內容:setup.py __init .pyc _check_build.so build init .py setup.pyc


似乎scikit-learn的構建不正確。

如果您已經從源代碼安裝了scikit-learn,請不要忘記在使用之前構建該軟件包:在源目錄中運行python setup.py installmake

如果您使用了安裝程序,請檢查它是否適合您的Python版本,操作系統和平台。 在/usr/local/lib/python2.7/dist-packages/sklearn/ check_build / __初始化 .raise_build_error(INIT的.py:41)在/usr/local/lib/python2.7/dist-packages/sklearn/ check_build / __init 。( init .py:46)位於/usr/local/lib/python2.7/dist-packages/sklearn/ init 。( init .py:56)

_PyThreadState_Current錯誤表示它使用了錯誤的Python。 在啟動該過程之前,您應該能夠通過將PATH和LD_LIBRARY_PATH設置為要使用的python / bin和python / lib目錄(並針對其構建了Jep和sklearn)來修復它。 這樣可以確保Python,Jep和sklearn都使用相同的庫。

如果這不起作用,則可能是Jep或sklearn是使用與運行時不同的Python版本構建的。

我們有同樣的問題。
我們認為這是一個構建問題,由於重建scikit-learn並沒有解決問題,因此最終我們使用了預先構建的Anacoda2來使用scikit-learn。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM