我使用Python中的Tkinter
来处理带有Tcl
代码的SpirentTestCenter
API。我碰巧也使用pandas
,当一起使用时,我面临着库加载问题。你知道吗
import os
sStcVersion='4.73'
sStdPath = '/repo/dinesh/MY_PACKAGES/STC/'+sStcVersion
import pandas as pd
import Tkinter
tcl = Tkinter.Tcl()
tcl.eval('puts $::env(LD_LIBRARY_PATH)')
tcl.eval('source '+'/repo/dinesh/MY_PACKAGES/STC/'+sStcVersion+'/pkgIndex.tcl')
tcl.eval('package require SpirentTestCenter 4.73')
>>> Error Occured while loading the Spirent Automation Internal Utility Library (couldn't load file "/repo/MY_PACKAGES/STC/4.73/libsTcl.so":
/repo/dinesh/MY_PACKAGES/robot/PACKAGES/lib_for_64bit_compat/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by /repo/MY_PACKAGES/STC/4.73/libsTcl.so)).
所需的libstdc++.so.6
与libsTcl.so
位于同一目录中(即/repo/MY\u PACKAGES/STC/4.73/)。但是它是从另一个目录获取libstdc++.so.6
,该目录在LD_LIBRARY_PATH
中可用。我试图更改LD_LIBRARY_PATH
,但它仍然从错误的目录中获取它。你知道吗
如果我不导入pandas
模块,就看不到这个问题。似乎libstdc++.so.6
已经装载了来自/repo/dinesh/MY_PACKAGES/robot/PACKAGES/lib_for_64bit_compat/libstdc++.so.6
的熊猫。你知道吗
如何强制python从首选目录获取libstdc++.so.6
?你知道吗
这表明它不是从LD\u LIBRARY\u路径获取的,或者您没有正确更改LD\u LIBRARY\u路径。你知道吗
您可以尝试在环境中设置
LD_PRELOAD=/repo/MY_PACKAGES/STC/4.73/libstdc++.so.6
,以便在加载其他内容之前加载所需的版本,这样当加载程序看到对libstdc++.so.6
的依赖关系时,它就已经有了正确的依赖关系,而不会尝试加载错误的依赖关系。你知道吗相关问题 更多 >
编程相关推荐