0%

pycharm | 为什么Python代码能运行但是PyCharm给我画红线?

今天做项目的时候,遇到了很奇怪的一个问题,如标题所示。


参考资料



场景


先说一下,我是怎么出现这个错误的。

一开始,我创建了一个项目,名为 project,然后,我在 github 上看见了一个好项目 p1,就把它 zip 下载下来,然后解压到 project 中,后来,配置好相关环境后,我发现,很多引用一直画红线。

比如

import torch

但是,我明明已经安装了,并且,我还能成功运行,但,就是一直是红色波浪线。

后来查了之后,发现是工作区的问题。


解决方案


Python 有一个工作区的概念,在默认情况下,当你使用

python xxx.py

运行一个.py文件时,工作区就是你运行的这个.py文件所在的文件夹。

这里假设有两个文件

  • login.py
  • main.py

由于login.pymain.py文件是放在同一个文件夹里面的,所以当你直接运行main.py时,Python能够正确知道 from login import login是指从和main.py在一起的这个login.py文件中导入login函数。所以一切都是正常的。

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

在上面那个问题中,我们一开始的工作区是

project

但是,我们后来运行的代码是 p1 但是工作区是 project

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

点击叉号,把工作区删掉。

点击 Add Content Root 选择正确的工作目录即可。

请我喝杯咖啡吧~