Python 将共享对象作为模块导入失败

Python 将共享对象作为模块导入失败,python,python-import,Python,Python Import,我要创建具有以下结构的包: file.py package_name/ package_name/__init__.py package_name/module_a.py package_name/module_b.so 模块a使用模块b并且工作良好。但是,如果尝试从file.py加载包package\u name或包含的模块module\u a,则会发生错误,无法找到module\u b 我做错了什么?您的LD\u LIBRARY\u路径包含当前工作目录的。如果您直接调用module\u a

我要创建具有以下结构的包:

file.py
package_name/
package_name/__init__.py
package_name/module_a.py
package_name/module_b.so
模块a
使用
模块b
并且工作良好。但是,如果尝试从
file.py
加载包
package\u name
或包含的模块
module\u a
,则会发生错误,无法找到
module\u b


我做错了什么?

您的
LD\u LIBRARY\u路径
包含当前工作目录的
。如果您直接调用
module\u a
,它就是它所在的目录;如果您调用
file.py
它就是
file.py
的目录,在那里找不到库。您可以使用多个选项来更改它

  • 在环境中更改您的
    LD\u库路径。这可以在.bashrc中,在调用python文件的shell脚本中完成,方法是在调用前加上
    LD_LIBRARY\u PATH=/your/PATH
    ,或者在python中修改
    os.environ
  • 您还可以将库符号链接到其他文件夹
  • 您可以将库安装到系统范围的库文件夹中