在pycharm下,定义了一个项目,然后在项目文件夹下设置了子文件夹,又或者在子文件夹下设置孙文件夹,那么子文件夹以下级别的同一个文件夹中的.py文件之间的相互导入会出错,系统会提示不存在这样一个module,这是为什么?
目录树:
其中Monitor _ Client是一个pycharm中的项目。
client _ main.py文件可以直接import redisHelper,没有提示错误,其中RedisHelper是一个类。
而在plugin文件夹下,plugin _ api.py文件无法正常导入同一文件夹下的.py文件,如下图所示:
但是,在plugin _ api.py文件内运行下述代码,提示的搜索路径是直接指向plugin文件夹的:
(1)"import":导入的只能是`文件`中的对象(函数/变量/类等等)
(2)from XXX import `文件` ,没问题; from XXX.YYY import 对象 也没问题
楼主,你好,问一下你这问题怎么解决的?
https://blog.csdn.net/gzmfxy/article/details/78013211
上面的链接有解决方法
按 python3 标准的说明,对于最顶层的导入只会搜索 sys.path , 而执行一个脚本时,只会将被执行的脚本的所在目录添加到 sys.path ,而并不会将被其导入的模块所在的目录添加到 sys.path 中。因此子包中同级别的子模块使用绝对导入找不到是正常的。 可以使用相对导入。