运行manage.py runserver遇ImportError,已装Django仍提示找不到模块
解决Django导入错误:No module named 'django'(已安装Django但运行manage.py失败)
嘿,我太懂你这种新手踩坑的感觉了——明明django-admin --version都能显示1.8.7,证明Django确实装了,但一跑python3 manage.py runserver就报找不到django模块,这事儿大概率是Python环境不匹配搞的鬼。
简单说就是:你用来安装Django的Python版本,和你现在运行manage.py时用的python3不是同一个环境。比如很多系统里pip默认对应Python2,而python3需要用pip3来装包,这就会导致Django装到了Python2的环境里,Python3根本找不到它。
给你几个一步步解决的方案:
1. 先确认环境匹配问题
先跑这两个命令,看看路径是否一致:
# 查看python3对应的pip路径 python3 -m pip --version # 查看django-admin的安装路径 which django-admin
如果输出里的Python路径不一样,那实锤是环境不匹配了,直接看下面的方案解决。
2. 用对应版本的pip重新安装Django
既然你用python3运行manage.py,那就直接给python3装Django:
python3 -m pip install django==1.8.7
装完之后再跑python3 manage.py runserver 127.0.0.1:8000,应该就能正常启动了。
3. 检查是否激活了虚拟环境(如果用了的话)
要是你创建项目时用了虚拟环境,那必须先激活环境才能让python找到对应的Django:
# Linux/macOS下激活虚拟环境(假设你的虚拟环境叫venv) source venv/bin/activate # Windows cmd下激活 venv\Scripts\activate.bat
激活后命令行前面会出现虚拟环境的名字,这时候再运行manage.py就没问题了。
4. 用django-admin对应的Python版本运行manage.py
如果你不想重新安装,也可以直接用django-admin绑定的Python版本来跑:
# 先查看django-admin的shebang行(就是文件第一行) head -n 1 $(which django-admin) # 假设输出是#!/usr/bin/python2.7,那用这个路径运行manage.py /usr/bin/python2.7 manage.py runserver 127.0.0.1:8000
另外给新手提个小建议:以后做Django项目尽量用虚拟环境,每个项目单独管理依赖,能少很多这种环境冲突的坑~
内容的提问来源于stack exchange,提问作者vivek mehra
相关产品推荐
相关产品推荐

