DigitalOcean Ubuntu16.04安装Python3.6后无法执行Django管理命令
解决Django模块找不到的问题
嘿,我来帮你搞定这个头疼的问题!你遇到的核心矛盾是:明明装了Python3.6.3和Django,但运行manage.py时系统就是找不到Django——大概率是Python版本和pip的对应关系没对齐,或者虚拟环境的配置出了岔子。下面是一步步的排查和解决办法:
1. 先确认pip和Python3.6是不是配对的
很多时候系统里会装多个Python版本,pip可能默认绑定了旧版本的Python,导致你装的Django没进到3.6的环境里:
- 先查
pip对应的Python版本:
看输出里的Python版本是不是3.6.3,如果不是,那就是问题根源;pip --version - 直接用Python3.6自带的pip来安装Django,这样绝对不会错:
这个命令会强制把Django装到Python3.6的site-packages目录里。python3.6 -m pip install django==2.0.4
2. 检查虚拟环境(如果用了的话)
如果你之前给项目配了虚拟环境,很可能激活的是旧Python版本的环境:
- 先退出当前环境:
deactivate; - 用Python3.6重新创建一个虚拟环境:
python3.6 -m venv my_project_env - 激活新环境(Linux/macOS下):
激活后命令行前面会出现环境名称,这时候再装一遍Django,然后运行source my_project_env/bin/activatemanage.py试试。
3. 直接指定Python3.6运行命令
如果上面的步骤都试过还是不行,别纠结,直接用你装的Python3.6来运行manage.py:
python3.6 manage.py makemigrations
这样能确保你用的是那个支持f-string的Python版本,而且它能找到自己环境里装的Django。
4. 最后检查PYTHONPATH(可选)
如果还是有问题,可以看看当前Python3.6的模块搜索路径:
python3.6 -c "import sys; print('\n'.join(sys.path))"
看看输出里有没有包含Django的安装目录(一般是/usr/local/lib/python3.6/site-packages或者虚拟环境的lib/python3.6/site-packages)。如果没有,可以临时设置PYTHONPATH:
export PYTHONPATH=/path/to/django/site-packages:$PYTHONPATH
然后再运行命令试试。
一般来说,用python3.6 -m pip安装,再用python3.6运行命令就能解决90%的版本不匹配问题,你先试试这两步!
内容的提问来源于stack exchange,提问作者ralfillo
相关产品推荐
相关产品推荐

