导入用户定义模块的环境设置

导入用户定义模块的环境设置

我正在创建一个用户定义模块和一个 .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

来源

相关内容