如何修复ImportError:无法导入Django以运行python manage.py runserver?
解决Django导入错误及PYTHONPATH配置方案
一、先确认环境与Django安装状态
- 激活虚拟环境后,执行
which python(Linux/macOS)或where python(Windows),确认当前使用的是虚拟环境内的Python - 执行
pip list,检查输出列表中是否包含Django及对应版本 - 如果pip安装后仍无Django,直接指定虚拟环境的pip执行安装:
/path/to/venv/bin/pip install django(将路径替换为你查到的虚拟环境Python路径)
二、查看当前PYTHONPATH环境变量
- Linux/macOS:激活虚拟环境后,执行
echo $PYTHONPATH - Windows(CMD):激活虚拟环境后,执行
echo %PYTHONPATH% - Windows(PowerShell):激活虚拟环境后,执行
$env:PYTHONPATH - 用Python查看更直观:运行
python -c "import sys; print(sys.path)",输出的列表就是Python当前识别的路径集合
三、将Django添加到PYTHONPATH
临时添加(仅当前终端会话有效)
- 先获取Django安装路径:执行
pip show django,复制Location字段对应的路径 - Linux/macOS:
export PYTHONPATH=$PYTHONPATH:/path/to/django/location - Windows(CMD):
set PYTHONPATH=%PYTHONPATH%;C:\path\to\django\location - Windows(PowerShell):
$env:PYTHONPATH += ";C:\path\to\django\location"
永久添加到虚拟环境
- 激活虚拟环境后,进入虚拟环境的
bin(Linux/macOS)或Scripts(Windows)目录 - 创建
postactivate(Linux/macOS)或postactivate.bat(Windows)脚本,写入上述环境变量配置命令 - 后续每次激活虚拟环境时,PYTHONPATH会自动加载该配置
项目代码内临时添加
- 在项目根目录的
manage.py开头插入以下代码:
import sys # 替换为pip show django查到的Location路径 django_install_path = "/path/to/django/location" if django_install_path not in sys.path: sys.path.append(django_install_path)
四、验证修复效果
- 激活虚拟环境,进入项目根目录(包含manage.py的目录)
- 先执行
python -c "import django; print(django.__version__)",确认Django能正常导入 - 再执行
python manage.py runserver,检查服务是否能正常启动
内容的提问来源于stack exchange,提问作者user17598401
相关产品推荐
相关产品推荐

