我正在研究一些python代码,它使用GDAL(http://www.gdal.org/)及其python绑定从ECW文件中提取一些图像数据.GDAL是从源代码构建的,以获得ECW支持.
该程序在我进入的集群服务器上运行.我已经通过ssh终端测试了程序,运行正常.但是,我现在想使用qsub向集群提交作业,但它报告以下内容:
Traceback (most recent call last):
File "./gdal-test.py", line 5, in <module>
from osgeo import gdal
File "/home/h3/ctargett/.local/lib/python2.6/site-packages/GDAL-1.11.1-py2.6-linux-x86_64.egg/osgeo/__init__.py", line 21, in <module>
_gdal = swig_import_helper()
File "/home/h3/ctargett/.local/lib/python2.6/site-packages/GDAL-1.11.1-py2.6-linux-x86_64.egg/osgeo/__init__.py", line 17, in swig_import_helper
_mod = imp.load_module('_gdal', fp, pathname, description)
ImportError: /mnt/aeropix/prgs/.local/lib/libgdal.so.1: undefined symbol: H5Eset_auto2
Run Code Online (Sandbox Code Playgroud)
我做了一些挖掘,并尝试使用LD_DEBUG=symbols尝试找出差异的地方,但这就是我的知识/理解带给我的.
作为参考,这里是LD_DEBUG=symbols在ssh终端中运行和运行代码的事情(通过管道grep H5Eset_auto2来减少一些输出):
在ssh终端中运行的代码的符号调试输出:
11359: symbol=H5Eset_auto2; lookup in file=/usr/bin/python26 [0]
11359: symbol=H5Eset_auto2; lookup in file=/usr/lib64/libpython2.6.so.1.0 [0]
11359: symbol=H5Eset_auto2; lookup in file=/lib64/libpthread.so.0 [0]
11359: symbol=H5Eset_auto2; lookup in file=/lib64/libdl.so.2 [0]
11359: …Run Code Online (Sandbox Code Playgroud)