我正在尝试使用Nuitka构建一个可执行文件,用于以下简单代码:
from numpy import abs
var = raw_input("Please enter something: ")
print "you entered", var
print abs(-43.2)
var2 = raw_input("Secundo: ")
print var2
Run Code Online (Sandbox Code Playgroud)
我编译的Nuitka代码是:
nuitka --standalone --show-scons FILENAME
Run Code Online (Sandbox Code Playgroud)
这显然是我的问题的简化.我尝试编译没有numpy并且不使用"abs",并且exectuable执行完美.但是,当我使用numpy代码编译时,我尝试执行生成的.exe,我收到以下错误:
Traceback (most recent call last): File "...\__init__.dist\__init__.py", line 1, in <module>
File "...\__init__.dist\numpy\__init__.py", line 142, in numpy
File "...\__init__.dist\numpy\add_newdocs.py", line 13, in add_newdocs
File "...\__init__.dist\numpy\lib\__init__.py", line 8, in lib
File "...\__init__.dist\numpy\lib\type_check.py", line 11, in type_check
File "...\__init__.dist\numpy\core\__init__.py", line 14, in core
ImportError: LoadLibraryEx '...\__init__.dist\numpy\core\multiarray.pyd' failed
Run Code Online (Sandbox Code Playgroud)
我使用的是Python 2.7.8 64bit,Numpy 1.11.3 64bit,Nuitka 0.5.24.4
我怎么解决这个问题?Nuitka与Numpy不兼容吗?
以下是在init .dist文件夹中找到的:
? bz2.pyd
? gpsvc.dll
? mfc90.dll
? msvcr90.dll
? msvcrt.dll
? nlaapi.dll
? python27.dll
? pywintypes27.dll
? sysntfy.dll
? tree.txt
? unicodedata.pyd
? win32api.pyd
? win32pdh.pyd
? win32ui.pyd
? _win32sysloader.pyd
? __init__.exe
?
????numpy
????core
? multiarray.pyd
? umath.pyd
?
????fft
? fftpack_lite.pyd
?
????linalg
? lapack_lite.pyd
? _umath_linalg.pyd
?
????random
mtrand.pyd
Run Code Online (Sandbox Code Playgroud)
小智 0
建议使用--plugin-enable=numpy来解决这个问题
所以,在你的情况下,它会是这样的:
nuitka --standalone --show-scons --follow-import-to=numpy --plugin-enable=numpy FILENAME.py
Run Code Online (Sandbox Code Playgroud)