我有一个boost python生成一个共享对象,用于/home/user/service/org/boost_py.so中的python(此文件夹不包含__init __。py)
和/ home / user / service是sys.path的一部分,所以当我需要使用它时,只需执行
import org.boost_py #works
现在我在另一个目录中添加了一个纯python模块。
/home/user/service/pure_python/org/
__init__.py
tester.py
__ init__.py包含
__import__('pkg_resources').declare_namespace(__name__)
现在当sys.path是
时['/home/user/service/','/home/user/service/pure_python']
和我
import org.boost_py #ImportError: No module named 'org.boost_py'
但我可以导入org.tester。如何导入org.tester和org.boost_py? (我无法改变其中的位置)
更新: 在pure_python目录中找到包含以下内容的pth文件
import sys, types, os;
p = os.path.join(sys._getframe(1).f_locals['sitedir'], *('org',));
ie = os.path.exists(os.path.join(p,'__init__.py'));
m = not ie and sys.modules.setdefault('org', types.ModuleType('org'));
mp = (m or []) and m.__dict__.setdefault('__path__',[]);
(p not in mp) and mp.append(p)
答案 0 :(得分:0)
显然'pure_python / org'中没有文件或目录boost_py
,这会产生错误。
如果存在,请编辑问题!
或者,提升的路径可能不在路径浏览器中,然后它就不会识别文件。