加载库libstdc++.so.6时与Tkinter和pandas发生冲突

2024-03-28 13:05:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Python中的Tkinter来处理带有Tcl代码的SpirentTestCenterAPI。我碰巧也使用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.6libsTcl.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?你知道吗


Tags: import目录pandastkintermypackagesevallibrary
1条回答
网友
1楼 · 发布于 2024-03-28 13:05:05

But it is taking the libstdc++.so.6 from the another directory which is available in the LD_LIBRARY_PATH. I tried changing the LD_LIBRARY_PATH , but still it is taking it from the incorrect directory.

这表明它不是从LD\u LIBRARY\u路径获取的,或者您没有正确更改LD\u LIBRARY\u路径。你知道吗

您可以尝试在环境中设置LD_PRELOAD=/repo/MY_PACKAGES/STC/4.73/libstdc++.so.6,以便在加载其他内容之前加载所需的版本,这样当加载程序看到对libstdc++.so.6的依赖关系时,它就已经有了正确的依赖关系,而不会尝试加载错误的依赖关系。你知道吗

相关问题 更多 >