PyCharm里from...import...出现波浪线标红

PyCharm在遇到模块找不到时,会使用红色波浪线提醒开发者。这本来是一个非常好的功能,但却由于另外一个问题,会给一些Python初学者造成困扰。

这一篇文章,我们讲讲工作区导致的这个问题。

首先我们创建一个login.py文件,它的内容如下:

def login():
    print('登录服务器')

再创建一个 main.py,它的内容如下:

from login import login

print('准备登录服务器')
login()

这两个文件的文件结构如下图所示:

 此时就不会报错,

如果在untitled下再创建一个文件夹p,把login.py文件放进去,也不会报错。引用就会显示这样:

 

 如果把p.删除,就会显示红色波浪线。

提示没有这个模块。

如果把两个.py文件都在p文件夹里,就会红色波浪线,但是可以正常运行。

 

 

 

所以PyCharm有问题?它胡乱报错吗?

实际上不是这样的。

Python有一个工作区的概念,在默认情况下,当你使用 python xxx.py运行一个.py文件时,工作区就是你运行的这个.py文件所在的文件夹。由于login.py和main.py文件是放在同一个文件夹里面的,所以当你直接运行main.py时,Python能够正确知道 fromloginimportlogin是指从和main.py在一起的这个login.py文件中导入login函数。所以一切都是正常的。

当时当你使用PyCharm打开一个项目文件夹时,由于还没有运行这个项目中的某个文件,所以PyCharm会以当前打开的这个项目文件夹为工作区。

在这个例子中,PyCharm会以 untitled这个文件夹作为工作区。所以当我在main.py中写 from login import login的时候,PyCharm会从untitled这个文件夹里面去需找login.py文件。显然,由于login.py在p文件夹里面,不在 untitled 这个文件夹里面,所以PyCharm找不到,于是就会画红色波浪线。

要解决这个问题也非常简单。打开PyCharm的项目设置,定位到 Project Structure,如下图所示。

点击红色箭头指向的x符号,删除当前的内容,并添加新的内容,把真正的项目文件夹路径添加进去,如下图所示:

 回到PyCharm,发现它已经可以正确找到 login.py文件了。如下图所示,红色波浪线消失。

 

 

  • 17
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值