我使用jep在java中运行python脚本,我基本上需要运行使用scikit包的脚本。但是当我试图运行时,它显示了错误,我无法理解。
这是我的程序Jep = new ();jep.eval(“导入sklearn”)中的一段代码;
它显示了下面的错误,但是sklearn在python中运行得非常好。2016年7月6日下午5:31:50 /usr/local/lib/python2.7/dist-packages/sklearn/__check_build/_check_build.so: JepEx main JepEx: null jep.JepException: jep.JepException::jep.JepException未定义符号:_PyThreadState_Current
/usr/local/lib/python2.7/dist-packages/sklearn/check_build: setup.py __init.pyc _check_build.so init.py setup.pyc内容
科学学习似乎没有被正确地建立起来。
如果您已经安装了scikit-从源代码中学习,请不要忘记在使用它之前构建包:在源目录中运行python setup.py install或make。
如果您使用了安装程序,请检查它是否适合您的Python版本、操作系统和平台。at jep.Jep.eval(Jep.java:485) at JepEx.executeCommand(JepEx.java:26) at JepEx.main(JepEx.java:38)引起的: jep.JepException::JepEx.main未定义符号:_PyThreadState_Current
/usr/local/lib/python2.7/dist-packages/sklearn/check_build: setup.py __init.pyc _check_build.so init.py setup.pyc内容
科学学习似乎没有被正确地建立起来。
如果您已经安装了scikit-从源代码中学习,请不要忘记在使用它之前构建包:在源目录中运行python setup.py install或make。
如果您使用了安装程序,请检查它是否适合您的Python版本、操作系统和平台。在/usr/local/lib/python2.7/dist-packages/sklearn/check_build/__init.raise_build_error(init.py:41) at /usr/local/lib/python2.7/dist-packages/sklearn/check_build/__init.(init.py:46) at /usr/local/lib/python2.7/dist-packages/sklearn/init.(init.py:56)
发布于 2017-04-07 17:20:41
_PyThreadState_Current错误意味着它使用了错误的Python。在启动过程之前,您应该能够通过将PATH和LD_LIBRARY_PATH设置到您想要使用的python/bin和python/lib目录(以及构建Jep和sklearn )来修复它。这将确保Python、Jep和sklearn都使用相同的库。
如果这不起作用,Jep或sklearn可能是使用不同版本的Python构建的,而不是您正在运行的版本。
发布于 2016-11-10 14:17:59
我们也有同样的问题。
我们认为这是一个构建问题,因为重建scikit没有解决我们最终使用scikit的问题--使用预构建的Anacoda2学习。
https://stackoverflow.com/questions/38223546
复制相似问题