我正在使用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"]
)