从源导入导致在处理绝对imp时找不到父模块

2024-09-26 22:52:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下文件夹结构

app/
ext/
  gredis/
    gredis.py

我有完整的路径格雷迪斯.py在/Users/blah/blah/blah/ext/gredis/gredis.py

但是,当我试图导入ext.gredis.gredis模块时,使用

^{pr2}$

我有以下错误

RuntimeWarning: Parent module 'ext.gredis' not found while handling absolute import

我需要先导入吗外景格雷迪斯? 在

注意:所有文件夹都有__init__.py


Tags: 模块py路径文件夹app错误结构users
2条回答

我发现的解决办法是保证冲击加载源(即模块的名称)不包含句点。不知道为什么这很重要,但希望它能帮助某人

你能发布重现错误的代码吗?这对我有用:

$ tree
.
+  app
¦   +  test.py
+  ext
¦   +  gredis
¦   ¦   +  gredis.py
¦   ¦   +  gredis.pyc
¦   +  test.py
+  test.py

$ for path in test.py app/test.py ext/test.py; do python $path; done;
<module 'ext.gredis.gredis' from '/tmp/bla/ext/gredis/gredis.pyc'>
<module 'ext.gredis.gredis' from '/tmp/bla/ext/gredis/gredis.pyc'>
<module 'ext.gredis.gredis' from '/tmp/bla/ext/gredis/gredis.pyc'>

以及测试.py包含:

^{pr2}$

这在python2.x和3.x中都可以使用

相关问题 更多 >

    热门问题