我有一个更大程序的共享库文件。我似乎在所有共享库中都会遇到很多这样的错误,所以我想我已经把我的问题缩小到与此相关的问题。在
我有一个文件叫做libMdsdcl.so. 出于测试目的,我将它单独放在一个文件夹中,并运行以下行来重复错误:
In [1]: import ctypes as c
In [2]: from ctypes.util import find_library
In [3]: name = 'Mdsdcl'
In [4]: libname = find_library(name)
In [5]: c.CDLL(libname)
---------------------------------------------------------------------------
OSError Traceback (most recent call last)
<ipython-input-6-7c40f200b197> in <module>()
----> 1 c.CDLL(libname)
/usr/lib/python3.6/ctypes/__init__.py in __init__(self, name, mode, handle, use_errno, use_last_error)
346
347 if handle is None:
--> 348 self._handle = _dlopen(self._name, mode)
349 else:
350 self._handle = handle
OSError: libreadline.so.6: cannot open shared object file: No such file or directory
这不是我的代码,而是代码的一部分,似乎对每个安装它的人都有效。基于其他类似的问题,我检查了python安装的架构和文件,它们都是64位的。我的libreadline有什么问题吗?事实上,在此之前我也刚刚升级到ubuntu18.04。在
作为参考,这是MDSplus在微小的,微小的机会,有人看到它熟悉它。在
您没有显示如何在中填充
name
:您可能需要确保从正确的目录开始。
os.path.dirname(__file__)
将为您提供正确的目录。在但在这种情况下,我通常会看到:
^{pr2}$我认为问题在于你的路径,因为你没有给出共享对象的实际扩展。尝试:
只是一些想法,因为我不能确定基于有限的信息显示。在
相关问题 更多 >
编程相关推荐