我正在创建一个用户定义模块和一个 .so 文件并将其导入到 python 模块中。
库中的函数未按预期响应。
需要设置哪些环境变量才能包含所有库路径和标头?
.so 文件到底存在哪里(我放在 /usr/lib/python2.7/dist-packages 中)?
是否需要进行其他设置来引用库路径和标题?
答案1
如果您已将.so 文件放入/usr/lib/python2.7/dist-packages
,请尝试创建一个名为“my_lib.py”的新 python 文件(在同一目录中)。
将下面的代码放入其中:
def __bootstrap__():
global __bootstrap__, __loader__, __file__
import sys, pkg_resources, imp
__file__ = pkg_resources.resource_filename(__name__,'hello_world.so')
__loader__ = None; del __bootstrap__, __loader__
imp.load_dynamic(__name__,__file__)
__bootstrap__()
您可能需要安装python-pkg-resources
:
sudo apt-get install python-pkg-resources
现在你可以将这个 my_lib 导入为:
>>> import my_lib
编辑:为了正确管理多个扩展,我建议使用以下方法打包它们distutils
然后使用以下方法安装它们
./setup.py build
sudo ./setup.py install