Python 3.x python打包导致导入错误
我在/home/user/service/org/boost_py.so中有一个boostpython,它生成了一个与python一起使用的共享对象(这个文件夹不包含_init__.py) and/home/user/service是sys.path的一部分,所以当我需要使用它时,只需执行以下操作Python 3.x python打包导致导入错误,python-3.x,namespaces,python-module,Python 3.x,Namespaces,Python Module,我在/home/user/service/org/boost_py.so中有一个boostpython,它生成了一个与python一起使用的共享对象(这个文件夹不包含_init__.py) and/home/user/service是sys.path的一部分,所以当我需要使用它时,只需执行以下操作 import org.boost_py #works 现在,我在另一个目录中添加了一个纯python模块 /home/user/service/pure_python/org/
import org.boost_py #works
现在,我在另一个目录中添加了一个纯python模块
/home/user/service/pure_python/org/
__init__.py
tester.py
__init_uuuuy.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)
显然,“pure_python/org”中没有文件或目录
boost_py
,这会产生错误
如果存在,请编辑问题
或者,boost的路径可能不在路径浏览器中,那么它就无法识别文件