今天做项目的时候,遇到了很奇怪的一个问题,如标题所示。
参考资料
场景
先说一下,我是怎么出现这个错误的。
一开始,我创建了一个项目,名为 project,然后,我在 github 上看见了一个好项目 p1,就把它 zip 下载下来,然后解压到 project 中,后来,配置好相关环境后,我发现,很多引用一直画红线。
比如
import torch但是,我明明已经安装了,并且,我还能成功运行,但,就是一直是红色波浪线。
后来查了之后,发现是工作区的问题。
解决方案
Python 有一个工作区的概念,在默认情况下,当你使用
python xxx.py运行一个.py文件时,工作区就是你运行的这个.py文件所在的文件夹。
这里假设有两个文件
login.pymain.py
由于login.py和main.py文件是放在同一个文件夹里面的,所以当你直接运行main.py时,Python能够正确知道 from login import login是指从和main.py在一起的这个login.py文件中导入login函数。所以一切都是正常的。
当你使用PyCharm打开一个项目文件夹时,由于还没有运行这个项目中的某个文件,所以PyCharm会以当前打开的这个项目文件夹为工作区。
在上面那个问题中,我们一开始的工作区是
project但是,我们后来运行的代码是 p1 但是工作区是 project。
要解决这个问题也非常简单。打开 PyCharm 的项目设置,定位到 Project Structure,如下图所示。

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

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