python引用包错误记录(pycharm:ide报错, terminal:命令行运行不报错)

项目:SET_UP_MENU下的paddleclas下的predict.py以下是症状

症状一:

import utils as utils
from utils import *

# import tools.infer.utils as utils
# from tools.infer.utils import get_image_list

注释部分使用命令行可用,但是ide不可用

非注释部分,都可用,都在统一目录下,引用的包的话
症状二:

引用包下方出现红线,或者在代码中运行时也有红线,但是ide和命令行调用,依然可以成功运行!
from tools.infer.utils import get_image_list(自行想象下面的红线)

在大佬的帮助下找到的错误处理如下

出错原因: 在这个项目中,还有一个同名的包,就像上面的那个from utils import *中的utils,通过 ctrl加上鼠标右键点击之后,路径进入的是改项目下的另一个同名的包。

而我们引用的utils包就在使用的predict.py的同一目录下,因此系统在运行的时候,首先会在同级目录下,进行搜索包,但是在检测错误也就是画红线的时候是从设置的源码根(源码根是自己左键点击目录自己设置的哈)上,向下进行的。

解决办法:

	1.将包含这个包的的文件夹(这里是predict.py和utils.py )设置为源码根,这样predict.py和utils.py 系统在搜索的时候就会从最近的源码根开始了
   
   2.把同名的其中的一个包该个名字,这个有些麻烦,不过迁移环境运行的时候就不用设置那些源码根了。

你可能感兴趣的:(python之坑,python)