虚拟环境中运行错误版本Django的问题求助
问题分析与解决思路
核心问题定位
你的问题本质是虚拟环境与Python版本绑定错误,以及命令调用时未正确关联目标Python解释器:
- 用
py -m venv .env创建虚拟环境时,虽py指向3.11,但实际激活后python调用3.8,说明虚拟环境的激活脚本或创建过程存在异常。 - 你通过
py -m pip install django安装的Django是全局3.11版本,而非虚拟环境内的版本;而manage.py runserver默认调用虚拟环境绑定的3.8解释器,自然加载3.8里的旧版Django。
分步解决思路
1. 重新创建绑定3.11的虚拟环境
明确指定Python版本创建虚拟环境,彻底避免版本混淆:
py -3.11 -m venv .env
激活虚拟环境:
.env\Scripts\activate.bat
激活后运行python --version,确认输出为3.11.1。
2. 在虚拟环境内安装Django
激活虚拟环境后,直接用虚拟环境的python调用pip,确保Django安装到虚拟环境:
python -m pip install django==4.1.5
安装完成后验证版本:
python -m django --version
确认输出4.1.5。
3. 用虚拟环境的Python执行项目命令
创建项目时,直接使用虚拟环境内的django-admin(无需全局路径):
django-admin startproject project_name .
启动服务时,同样使用虚拟环境的python:
python manage.py runserver
若仍有问题,直接指定虚拟环境Python的完整路径执行:
.env\Scripts\python.exe manage.py runserver
4. 清理全局环境避免干扰
卸载Python3.8中全局安装的旧版Django,消除版本冲突:
py -3.8 -m pip uninstall django
5. 验证环境变量优先级
激活虚拟环境后,系统会自动将虚拟环境的Scripts目录加入Path最前端。可通过以下命令确认:
echo %PATH%
确保.env\Scripts路径在所有Python全局Scripts路径之前。
内容的提问来源于stack exchange,提问作者Jason Brown
相关产品推荐
相关产品推荐

