我想创建一个包含以下结构的包:
file.py
package_name/
package_name/__init__.py
package_name/module_a.py
package_name/module_b.so
module_a
使用module_b
并且效果很好。但是,如果我尝试从package_name
加载包module_a
或包含模块file.py
,则会发生错误,无法找到module_b
。
我做错了什么?
答案 0 :(得分:2)
您的LD_LIBRARY_PATH
包含.
,这是当前的工作目录。如果你直接打电话给module_a
,那就是它所在的目录,如果你打电话给file.py
它的file.py
目录,那么就找不到那个库。您可以通过多种方式进行更改。
LD_LIBRARY_PATH
。这可以在.bashrc中,在调用python文件的shell脚本中完成,方法是使用LD_LIBRARY_PATH=/your/path
作为前缀或在Python中修改os.environ
。