由python工作区导致的python代码能运行,但是PyCharm画红线的问题
原文:https://www.zhihu.com/question/63028700
PyCharm在遇到模块找不到时,会使用红色波浪线提醒开发者。
Python有一个工作区的概念,在默认情况下,当你使用python xx.py运行一个.py文件时,工作区这个.py文件所在的文件夹。
例1:login.py和main.py是在同一个文件夹里,当直接运行main.py时,Python能够正确知道from login import login是指从和main.py在一起的这个login.py文件中导入login函数。所以一切都是正常的。
当使用PyCharm打开一个项目文件夹时,由于还没有运行这个项目中的某个文件,所以PyCharm会以当前打开的这个项目文件夹为工作区。
例2:如下图, PyCharm会以‘代码练习’这个文件夹作为工作区。当main.py中写from login import login的时候,PyCharm会从‘代码练习’文件夹里去找login.py文件。显然,由于login.py在‘chapter_1’里,不在‘代码练习’里,所以PyCharm找不到,于是就会画红色波浪线。
解决这个问题可以尝试下面两种方法:
1、右键目录名,点击make directory as -> sources path 将当前工作的文件夹加入source_path
2、file->settings->project->project structure->点击项目路径->点击sources