本文意在解决在PyChram中能正常运行Django项目,而在cmd中运行时出现以下报错的问题。
PyCharm中的运行结果:
cmd中的运行结果:
报错信息:
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
如果你在cmd中输入命令python manage.py runserver的报错信息如上所示,那么请大胆的往下看吧。
目录
课堂小知识一:报错原因解析:
计算机中含有多个Python环境,在PyCharm里选择的Python环境以及调用包的环境可以被明显直接地查看,而在cmd中调用的Python环境则需要按照计算机系统变量中设置的先后顺序被选择调用。也就是说,在PyCharm中成功运行Django项目是因为你选对了正确了环境,而在cmd中你选择让计算机疯狂的“撞南墙”。
课堂小知识二:如何解决此类问题:
首先,已知条件是有一个能在PyChram中运行的Django项目和一个在cmd中报错的Django项目。根据对照实验的思维分析这两种现象,无疑能发现你的Django项目是没有问题的,而且PyCharm中调用的第三方库的地址也是正确的。如果我们能让cmd中调用的Python环境和调用的第三方库的地址都改成PyCharm中调用的地址,那么在cmd中运行命令python manage.py runserver也不会再报错了。
在PyCharm的终端输入命令python来查看当前Python的版本号:
可以看到PyCharm中调用的Python版本是3.8.6。
输入命令quit()退出Python后继续在PyCharm终端输入命令pip show django查找环境地址:
Location的内容就是Django本地所在环境的地址。
我们再来看看cmd中系统优先调用的Python版本,输入命令python:
可以看出这是conda中安装的Python3.9.7版本,再来看看Django的版本,输入命令pip show django:
到此我们可以发现,cmd和PyCharm中连Python的版本号都对不上,就更不可能对上Django的版本了。
记住刚才Django所在的本地环境地址(Location):e:\python\venv\venv1\lib\site-packages(这个是我的环境地址,你们要想成功解决问题需要用你们的本地地址噢)。
在桌面右键“此电脑”点击属性,在相关设置里找到“高级系统设置”并点击。
在打开的界面中点击“环境变量”,在打开的界面中选中“系统变量”中的变量“Path”后点击“编辑”,点击新建。需要注意的是,这里需要添加两个地址,在Location的基础上修改,修改后一个地址是“E:\python\venv\venv1\Scripts”,另一个是“E:\python\venv\venv1”。添加修改后的两个地址并上移到最上方(上移到其他Python环境上方即可)。
添加并上移成功后点击确定。
课堂小知识三:成果验收:
重新打开一个cmd窗口,输入命令python:
可以发现现在cmd中的Python版本与PyCharm中的一致了,再来看看Django的版本,输入命令pip show django:
Django版本也与PyCharm中的一致了,此时此刻输入命令python manage.py runserver做最后的成果验收:
打开服务的默认地址:http://127.0.0.1:8000/
到此处 ,恭喜你,收获了解决这个问题的方法。
PS:找不到CTRL-BREAK的伙伴们,使用组合键CTRL+C就可以关闭Django服务了。