如何解决加载libodbc.so = libodbc.so时出错:无法打开共享库文件:
我想从AWS Glue ETL脚本执行存储过程。 我已将pypyodbc软件包上传到一个zip文件中,并在 Python库路径中提供了其路径, pypyodb.py文件使用以下代码加载库
try:
print('searching libodbc.so')
# First try direct loading libodbc.so
ODBC_API = ctypes.cdll.LoadLibrary('libodbc.so')
except:
# If direct loading libodbc.so failed
# We try finding the libodbc.so by using find_library
from ctypes.util import find_library
library = find_library('odbc')
if library is None:
# If find_library still can not find the library
# we try finding it manually from where libodbc.so usually appears
print('manually searching libodbc.so')
lib_paths = ("/tmp/libodbc.so","/tmp/configs/lib/libodbc.so","/tmp/pypyodbc.zip/configs/lib/libodbc.so","/usr/lib/libodbc.so","/usr/lib/i386-linux-gnu/libodbc.so","/usr/lib/x86_64-linux-gnu/libodbc.so","/usr/lib/libiodbc.dylib")
lib_paths = [path for path in lib_paths if os.path.exists(path)]
if len(lib_paths) == 0 :
raise OdbcNoLibrary('ODBC Library is not found. Is LD_LIBRARY_PATH set?')
else:
library = lib_paths[0]
# Then we try loading the found libodbc.so again
try:
ODBC_API = ctypes.cdll.LoadLibrary(library)
except Exception as e:
print('Error while loading libodbc.so = ',str(e))
# If still fail loading,abort.
raise OdbcLibraryError('Error while loading ' + library)
我已经在s3上上传了libodbc.so文件,并在引用文件路径字段
中提供了对AWS Glue作业的引用。当我尝试导入pypyodbc时,抛出以下错误:
无法打开共享库文件:没有这样的文件或目录
文件“ /tmp/localPyFiles-f5a57c04-cb23-4782-a9f8-2a5018c86c99/pypyodbc.py”,第429行,在ODBC_API = ctypes.cdll.LoadLibrary('libodbc.so')中,文件“ / usr / lib64 / python3.7 / ctypes / init .py”,位于LoadLibrary中的第437行,返回self._dlltype(name)文件“ /usr/lib64/python3.7/ctypes/init” > .py“,第359行,在 init 中self._handle = _dlopen(self._name,mode)OSError:libodbc.so:无法打开共享对象文件:无此类文件或目录上面的异常,发生另一个异常:追溯(最近一次调用为最新):文件“ /tmp/localPyFiles-f5a57c04-cb23-4782-a9f8-2a5018c86c99/pypyodbc.py”,行448,在ODBC_API = ctypes.cdll.LoadLibrary(library )文件“ /usr/lib64/python3.7/ctypes/init.py”,行437,在LoadLibrary中返回self._dlltype(name)文件“ /usr/lib64/python3.7/ctypes /init.py”,第359行,位于 init self._handle = _dlopen(self._name,mode)OSError:libodbc.so:无法打开共享对象ct文件:无此类文件或目录在处理上述异常期间,发生了另一个异常:回溯(最近一次调用为最新):导入pypyodbc文件中的文件“ / tmp / tops2-calculate-argus-job-1”,第7行“ /tmp/localPyFiles-f5a57c04-cb23-4782-a9f8-2a5018c86c99/pypyodbc.py”,第452行,在抬起OdbcLibraryError('加载'+库时出错pypyodbc.OdbcLibraryError:'加载libodbc.so时出错'>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。