ImportError:libopenblasp(Linux上为cx_Freeze)

时间:2018-07-27 12:05:05

标签: python-3.x numpy cx-freeze

我正在使用cx_Freeze在Linux(Ubuntu x32 16.04,Python3.6)下构建项目。该程序使用NumPy库。程序生成后,所有库都放在“ lib”文件夹中。在主文件中,我还添加了搜索路径: sys.path.append(os.path.realpath(os.path.dirname(sys.argv [0]))+“ /” +“ lib”)

运行程序时会产生错误: “ ImportError:libopenblasp-r0-135a2122.2.18.so:无法打开共享库文件:没有这样的文件或目录” libopenblasp-r0-135a2122.2.18.so文件位于lib文件夹中。将该库移至程序的根目录后,该程序无法导入其他库。如果将所有这些文件手动移至根目录,则该程序将运行。 该怎么办?

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/numpy/core/__init__.py", line 16, in <module>
    from . import multiarray
  File "ExtensionLoader_numpy_core_multiarray.py", line 23, in <module>
  File "ExtensionLoader_numpy_core_multiarray.py", line 15, in __bootstrap__
  File "/usr/lib/python3.6/imp.py", line 343, in load_dynamic
    return _load(spec)
ImportError: libopenblasp-r0-135a2122.2.18.so: cannot open shared object file: No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/dist-packages/cx_Freeze/initscripts/__startup__.py", line 14, in run
    module.run()
  File "/usr/local/lib/python3.6/dist-packages/cx_Freeze/initscripts/Console.py", line 26, in run
    exec(code, m.__dict__)
  File "main.py", line 12, in <module>
  File "/usr/local/lib/python3.6/dist-packages/numpy/__init__.py", line 142, in <module>
    from . import add_newdocs
  File "/usr/local/lib/python3.6/dist-packages/numpy/add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
  File "/usr/local/lib/python3.6/dist-packages/numpy/lib/__init__.py", line 8, in <module>
    from .type_check import *
  File "/usr/local/lib/python3.6/dist-packages/numpy/lib/type_check.py", line 11, in <module>
    import numpy.core.numeric as _nx
  File "/usr/local/lib/python3.6/dist-packages/numpy/core/__init__.py", line 26, in <module>
    raise ImportError(msg)
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: libopenblasp-r0-135a2122.2.18.so: cannot open shared object file: No such file or directory

setup.py

from cx_Freeze import setup, Executable
import sys, os

excludes = ['unicodedata', 'email', 'http', 'urllib',
             'xml', 'bz2', "setuptools", "pydoc_data", "lib2to3","concurrent","xmlrpc"]

zip_include_packages = ['numpy', 'PIL', "html", "widgets","unittest","olefile","multiprocessing",
"logging","importlib","encodings","distutils","curses", "ctypes", "collections","tkinter","idlelib"]

includes      = ["numpy"]
include_files = [(r"/usr/lib/libBLT.2.5.so.8.6", "libBLT.2.5.so.8.6")]

setup(
    name = "Test",
    options = {"build_exe": {"includes": includes, "include_files": include_files,
    'excludes': excludes,
    'zip_include_packages': zip_include_packages,
    'include_files':include_files,
    "packages": ["numpy"]}},
    executables = [Executable("main.py",  targetName = "Test"]
)

0 个答案:

没有答案