使用用Python C扩展创建的共享对象时出现问题

使用用Python C扩展创建的共享对象时出现问题,python,python-c-extension,Python,Python C Extension,我正在用Python 2.6.6在Linux Rhel 6.3上编写Python C扩展。 有一个共享库lib_common.so,我编写了一个C代码Python C扩展来调用库lib_common.so中的方法。 我创建了一个setup.py,其中包括库和C代码。 它能够成功地创建模块mymod.so mymod。 我将此so复制到/usr/lib64/python2.6/site-packages/目录,并将lib_common.so复制到同一目录 现在,当我调用Python解释器并导入模块

我正在用Python 2.6.6在Linux Rhel 6.3上编写Python C扩展。 有一个共享库lib_common.so,我编写了一个C代码Python C扩展来调用库lib_common.so中的方法。 我创建了一个setup.py,其中包括库和C代码。 它能够成功地创建模块mymod.so mymod。 我将此so复制到/usr/lib64/python2.6/site-packages/目录,并将lib_common.so复制到同一目录 现在,当我调用Python解释器并导入模块mymod时,我得到一个错误,该错误表示lib_common.so中存在的函数未定义

导入错误:/usr/lib64/python2.6/site-packages/mymod.so:未定义的符号:My_Fun


我的疑问是,我是否遗漏了任何一步,因此我出现了这个错误?

您是否尝试将lib_common.so设置为共享库的常用位置。在/usr/lib64下?是的,正如我提到的,我已经将lib_common.so复制到mymod.so被复制的目录中,并且我已经设置了LD_LIBRARY_路径。虽然LD_LIBRARY_路径应该可以工作,但是python方法是定义LIBRARY_dirs和runtime_LIBRARY_dirs,请参见。除此之外,你有没有尝试过编写一个最小的C程序来调用库、编译、链接和运行它?是的。我编写了一个没有任何so依赖性的C程序,并且能够成功地从Python调用它。但是依赖性lib_很常见,所以我面临这个问题