[英]ModuleNotFoundError: No module named 'scipy.special._ufuncs'
[英]pyinstaller error: cannot find scipy (No module named _ufuncs_cxx)
我正在使用pyinstaller將python腳本轉換為Ubuntu(14.04)中的二進制文件。 我使用Canopy(Enthought)管理所有python庫。
該代碼使用networkx,numpy和scipy。 這是我的規格文件:
# -*- mode: python -*-
a = Analysis(['main_test.py'],
pathex=['/home/sean/Desktop/prog',],
hiddenimports=[],
hookspath=None,
runtime_hooks=None)
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts,
exclude_binaries=True,
name='main_test',
debug=False,
strip=None,
upx=True,
console=True )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=None,
upx=True,
name='main_test')
起初我得到了錯誤:
ImportError: libmkl_gf.so: cannot open shared object file:
No such file or directory
然后我在
/home/sean/Canopy/appdata/canopy-1.3.0.1715.rh5-x86/lib
我手動將幾個.so文件復制到dist目錄中。
但是,我得到另一個錯誤:
File "/home/sean/Enthought/Canopy_32bit/User/lib/python2.7/site-
packages/PyInstaller/loader/pyi_importers.py", line 409, in load_module
module = imp.load_module(fullname, fp, filename, self._c_ext_tuple)
File "_ufuncs.pyx", line 1, in init scipy.special._ufuncs
(scipy/special/_ufuncs.c:21824)
ImportError: No module named _ufuncs_cxx
如何解決此錯誤? 我應該如何修改規格文件以添加這些庫和模塊?
編輯:
我找到了解決辦法。 現在的問題是:如何修改規格文件以添加.so庫? 現在,我必須手動將多個.so文件復制到dist目錄...
EDIT2
原來,我必須將其添加到COLLECT
:
a.binaries + ["libmkl_gf.so" ,
"/home/sean/Canopy/appdata/canopy-1.3.0.1715.rh5-x86/lib/libmkl_gf.so",
"binaries"]
有什么簡單的方法可以找到隱藏的導入或庫?
謝謝
我剛從解決問題中脫穎而出。 我必須使用--hidden-import標志指定缺少的模塊。 他們很多失蹤了,但我注意到其中大多數來自scipy.integrate。 所以我指定:
pyinstaller --hidden-import=scipy.integrate --hidden-import=scipy.integrate.quadpack --hidden-import=scipy.integrate._vode bla bla bla bla -F --windowed myscript.py
很痛苦,但是很努力
您是否要嘗試將庫路徑添加到LD_LIBRARY_PATH? 就像是,
導出LD_LIBRARY_PATH = / home / sean / Canopy / appdata / canopy-1.3.0.1715.rh5-x86 / lib
要么
導出LD_LIBRARY_PATH = $ LD_LIBRARY_PATH:/home/sean/Canopy/appdata/canopy-1.3.0.1715.rh5-x86/lib(如果已由admin設置),以便在運行時該文件夾中的所有.so都不會給出您鏈接錯誤...
哦,我明白你的意思,
導入系統
sys.path.append( 'your_lib_path')
這應該工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.