补充下,为避免给比我新的新手造成误导,以下说的情况,发生在自定义模块导入上。(比如下图Crash,就是我在工程目录下创建的一个Crash.py文件)
如果是非自定义模块,比如内置模块,或者需要另外用pip install xx安装的模块导入报错,那么首先考虑是不是已经安装了该模块,安装过程是否成功。
Python 3.x版本下,import规则可以搜出很多类似的文章。但是在coding过程中,依旧遇到了一些莫名其妙的坑。
第一次遇到这个问题,曾经困扰过我一整天,度娘+FQ狗狗,各种折腾。特别想不通,同样的代码,为什么在老师的教程那行得通,我这里就不行了。
某天上午第一次遇到的时候,是配置根目录的urls,import app.views,折腾了半天,后面突然就可以了。至今并不明白我当时干了什么。
晚上第二次遇到这个问题,是在配置admin的时候。from models import className,又画波浪线提示 no module named models.
解决办法:
models加一个点,表示同级目录。from .models import className。
第二次遇到这个问题,是在模仿一个Python3.x版本下的爬虫时。同样的代码,同样的文件结构,下面这一行代码,在电脑A上不报错。
from baike_spider import url_manager, html_downloader, html_parser, html_outputer
换另外一台笔记本的时候,就报错。这样写就不报错:
import url_manager, html_downloader, html_parser, html_outputer
个人猜测是否跟环境变量,或者创建工程目录时的环境之类的有关吧...待研究
还有一个解决办法,如图:右键单击文件夹,make directory as -> Sources Root。原因是创建project时,pycharm不会将当前文件目录自动加入自己的source path。但是这个方案是解决在pycharm提示错误,但是仍然可以运行的情况下。