django-admin.py无法运行求助:已安装且文件在PATH路径中
我之前维护老项目用Python2.7的时候也踩过一模一样的坑,结合你的场景,给你几个具体的排查和解决步骤:
先确认Django版本兼容性:Python2.7只支持Django 1.11.x及更低版本,如果你用pip装的是2.x及以上版本,百分之百会运行失败。先执行
pip show django查看当前版本,要是版本不对,卸载重装兼容版:pip uninstall django pip install django==1.11.29直接用指定Python版本调用脚本:有时候PATH里的
python命令默认指向的不是2.7版本,导致django-admin.py用错了Python环境。别纠结PATH的问题,直接用明确的版本调用:python2.7 django-admin.py startproject your_project_name更稳妥的方式是用Python模块调用,完全绕开脚本路径的问题:
python2.7 -m django startproject your_project_name检查django-admin.py的shebang行:打开django-admin.py文件,看开头的
#!/usr/bin/env python是不是指向了错误的Python版本。如果系统默认python是3.x,这个行就会调用Python3,自然跑不起来。你可以把它改成#!/usr/bin/env python2.7,或者直接用上面指定版本的方法调用。确认脚本的可执行权限:如果django-admin.py没有执行权限,就算在PATH里也跑不了。执行
chmod +x $(which django-admin.py)给脚本加上可执行权限,然后再试。验证pip和Python的对应关系:有时候系统里装了多个pip(比如
pip和pip2),你可能不小心用pip3把Django装到了Python3环境里。执行python2.7 -m pip show django,确认输出里的Location是Python2.7的site-packages目录,这样才说明Django装对了环境。
内容的提问来源于stack exchange,提问作者Douglas

