执行python manage.py shell报错bash: python: command not found求助
问题解决方案
先搞懂PATH是什么
PATH是系统查找可执行命令的目录列表,输入命令时,系统会按列表顺序逐个目录查找对应可执行文件,找到第一个匹配的就执行。你的PATH里虚拟环境的bin目录排在最前面,理论上应该优先调用虚拟环境内的Python,但问题出在虚拟环境内可能没有名为python的可执行文件。
步骤1:确认虚拟环境内的Python命名
激活虚拟环境后,执行以下命令查看虚拟环境bin目录内的文件:
ls /Users/andrewstribling/Desktop/mike_mysite/project_env/bin
检查输出里是否有python,还是只有python3(部分环境默认只创建python3软链接)。
步骤2:直接指定Python版本执行
如果步骤1发现只有python3,直接用以下命令替代原命令:
python3 manage.py shell
或者用虚拟环境内Python的绝对路径执行:
/Users/andrewstribling/Desktop/mike_mysite/project_env/bin/python3 manage.py shell
步骤3:创建python软链接(如果需要)
如果希望继续用python命令,手动在虚拟环境bin目录创建软链接:
ln -s /Users/andrewstribling/Desktop/mike_mysite/project_env/bin/python3 /Users/andrewstribling/Desktop/mike_mysite/project_env/bin/python
执行后再尝试python manage.py shell。
步骤4:重新创建干净的虚拟环境
如果上述方法无效,用系统原生Python(而非Anaconda的Python)重新创建虚拟环境,避免Anaconda的干扰:
# 先删除旧虚拟环境 rm -rf /Users/andrewstribling/Desktop/mike_mysite/project_env # 用系统Python3创建新环境 python3 -m venv /Users/andrewstribling/Desktop/mike_mysite/project_env # 激活新环境 source /Users/andrewstribling/Desktop/mike_mysite/project_env/bin/activate # 重新安装Django等依赖 pip install django
之后再尝试python manage.py shell。
步骤5:临时修正当前终端的PATH(测试用)
如果激活环境后PATH顺序异常,手动将虚拟环境bin目录放到PATH最前面:
export PATH=/Users/andrewstribling/Desktop/mike_mysite/project_env/bin:$PATH
执行后再测试命令。
内容的提问来源于stack exchange,提问作者user17598401
相关产品推荐
相关产品推荐

