python import失败_Python import 报错问题

最近遇到 import python 自定义模块出现报错的问题,捣鼓了很久,终于算是比较搞清楚了,为了描述清楚,有测试项目目录如下:

项目结构

环境描述:

自定义模块 pkg_a,包含两个文件 file_a_01.py,file_a_02.py(以下测试模块的测试文件都分别有两个包含模块标识的文件,不一一赘述了)

自定义模块 pkg_c,属于 pkg_a 模块的子模块

自定义模块 pkg_b

入口文件目录 src,模拟常规的运行脚本 runner.py 以及一个仅包含一些字符串的配置文件 conf.py

顶级目录入口文件 test.py

以上每个文件运行都会打印出自己的文件名,方便根据输出判断导入成功与否

本项目使用了 python 3.7 的虚拟环境

经常出现的使用场景:

场景一:顶级目录入口文件导入

在 test.py 文件测试了以下代码:

# 导入配置文件 src/conf.py

import src.conf

# 导入包 pkg_a

import pkg_a.file_a_02

输出:

I'm conf.py

I'm pkg_a_02

分析:

src 里没有包含 init.py 为什么还可以导入成功?

原因是 python3.3 之后支持了隐式命名空

你可能感兴趣的:(python,import失败)