今天做项目的时候,遇到了很奇怪的一个问题,如标题所示。
参考资料
场景
先说一下,我是怎么出现这个错误的。
一开始,我创建了一个项目,名为 project
,然后,我在 github
上看见了一个好项目 p1
,就把它 zip
下载下来,然后解压到 project
中,后来,配置好相关环境后,我发现,很多引用一直画红线。
比如
import torch
但是,我明明已经安装了,并且,我还能成功运行,但,就是一直是红色波浪线。
后来查了之后,发现是工作区的问题。
解决方案
Python
有一个工作区的概念,在默认情况下,当你使用
python xxx.py
运行一个.py
文件时,工作区就是你运行的这个.py
文件所在的文件夹。
这里假设有两个文件
login.py
main.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
选择正确的工作目录即可。