Python 相对引用

问题记录

1.项目目录

Demo/

|-- test1/
|   |-- test1.py
|-- test2/
|   |-- __init__.py
|   |-- test21.py
|   |-- test22.py
|-- main.py

2.代码示例

# test1.py
First = 1
# test21.py
from ..test1.test1 import First
Second_one = 21 + First
# test22.py
from .test21 import Second_one
Second_two = Second_one + 22

if __name__ == '__main__': 
    print(Second_two)

执行test22.py,异常信息如下:

Traceback (most recent call last):
  File "F:/Demo/test2/test22.py", line 10, in <module>
    from .test21 import Second_one
ImportError: attempted relative import with no known parent package

解决方案

1.方案一

1.进入项目所在目录,注意不是进入Demo目录,而是Demo所在目录
2.python -m Demo.test2.test22

2.方案二

1.在Demo路径下创建任意.py文件,如:test_main.py
2.test_main.py代码如下:

import os import sys
# 此处添加的目录需为Demo所在目录
sys.path.append(os.path.dirname(os.path.dirname(__file__))) 
from Demo.test2.test22 import Second_two
print(Second_two)

参考文档

http://www.likecs.com/show-50291.html
https://www.bbsmax.com/A/D8543bP6JE/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容