2017-10-30 17 views
1

ScriptEngine을 사용하여 Java에서 Python 스크립트를 작성하려고합니다. 하지만 tflearn 모듈을 가져올 때 다음과 같은 오류가 발생합니다.ImportError : 다중 배열 numpy 확장 모듈을 가져 오지 못했습니다.

javax.script.ScriptException: ImportError: 
Importing the multiarray numpy extension module failed. Most 
likely you are trying to import a failed build of numpy. 
If you're working with a numpy git repo, try `git clean -xdf` (removes all 
files not under version control). Otherwise reinstall numpy. 

Original error was: cannot import name multiarray 
in <script> at line number 1 
    at org.python.jsr223.PyScriptEngine.scriptException(PyScriptEngine.java:222) 
    at org.python.jsr223.PyScriptEngine.eval(PyScriptEngine.java:59) 
    at org.python.jsr223.PyScriptEngine.eval(PyScriptEngine.java:31) 
    at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264) 
    at com.ultimatix.bot.JavaRunCommand.main(JavaRunCommand.java:48) 
Caused by: Traceback (most recent call last): 
    File "<script>", line 1, in <module> 
    File "D:\Python\Lib\site-packages\tflearn\__init__.py", line 4, in <module> 
    from . import config 
    File "D:\Python\Lib\site-packages\tflearn\config.py", line 3, in <module> 
    import tensorflow as tf 
    File "D:\Python\Lib\site-packages\tensorflow\__init__.py", line 24, in <module> 
    from tensorflow.python import * 
    File "D:\Python\Lib\site-packages\tensorflow\python\__init__.py", line 47, in <module> 
    import numpy as np 
    File "D:\Python\Lib\site-packages\numpy\__init__.py", line 142, in <module> 
    from . import add_newdocs 
    File "D:\Python\Lib\site-packages\numpy\add_newdocs.py", line 13, in <module> 
    from numpy.lib import add_newdoc 
    File "D:\Python\Lib\site-packages\numpy\lib\__init__.py", line 8, in <module> 
    from .type_check import * 
    File "D:\Python\Lib\site-packages\numpy\lib\type_check.py", line 11, in <module> 
    import numpy.core.numeric as _nx 
    File "D:\Python\Lib\site-packages\numpy\core\__init__.py", line 26, in <module> 
    raise ImportError(msg) 

sys, pickle과 같은 다른 패키지를 가져 오려고했습니다. 수입이 성공적으로 이루어지고 있습니다.

파이썬 버전 : 3.5.4 OS : 윈도우 7-64 비트

답변

0

NumPy와 포트란 작성된 바이너리로 컴파일된다. 따라서 JVM에서 실행되는 것은 호환되지 않습니다. 가져 오는 다른 패키지는 순수한 파이썬으로 구현됩니다.

표준 파이썬 구현 인 CPython은 바이너리 수준에서 호환성을 유지하기 위해 많은 작업을 수행했습니다. Numpy 배열은 Java 배열과 동일한 메모리 레이아웃을 가지고 있지 않은 C 배열과 동일한 메모리 레이아웃을 가지고 있습니다. 파이썬으로 깊숙이 들어가면 왜 작동하지 않는지에 대해 많은 비 호환성이 있습니다.

+0

답장을 보내 주셔서 감사합니다. 이러한 비 호환성 문제가 있습니까? –

+0

@AnkushBandil 대답은 ​​응답자에게 귀중한 시간을 필요로합니다. 그 대답이 틀림없이 유용하기 때문에, 친절하게 그것을 받아들입니다. – desertnaut

+0

@desertnaut 의심을 제거하는 데있어서 잘못된 점은 무엇입니까? –