OSX系统下卸载Python 3.6保留3.7及Heroku部署问题求助
解决Python版本冲突及Heroku部署pip版本问题
Hey there! Let's work through this safely so you can keep only Python 3.7.9 and fix that Heroku pip mismatch issue. Here's a step-by-step guide:
第一步:确认Python 3.6.8的安装位置
首先得搞清楚你要删除的Python 3.6.8到底装在哪:
- Linux/macOS:在终端运行
which python,会返回类似/usr/bin/python或/Library/Frameworks/Python.framework/Versions/3.6/bin/python的路径,这就是3.6.8的位置。 - Windows:打开命令提示符,运行
where python,找到标注为Python 3.6.8的安装目录(比如C:\Python36)。
第二步:安全移除Python 3.6.8
如果你用的是Linux/macOS
- 如果是系统自带的Python 3.6:直接删除可能搞崩系统,建议切换默认Python版本:
- 运行
sudo update-alternatives --config python,会列出所有可用的Python版本。 - 输入对应Python 3.7.9的编号,按回车确认,这样
python命令就会默认指向3.7.9。
- 运行
- 如果是手动安装的Python 3.6.8:
- 删除安装目录:比如macOS运行
sudo rm -rf /Library/Frameworks/Python.framework/Versions/3.6,Linux运行sudo rm -rf /usr/local/python3.6(根据你第一步查到的路径调整)。 - 删除旧的可执行链接:
sudo rm /usr/bin/python(如果这个链接指向3.6.8)。 - 创建新链接指向3.7.9:
sudo ln -s /usr/bin/python3 /usr/bin/python。
- 删除安装目录:比如macOS运行
如果你用的是Windows
- 打开控制面板→程序和功能,找到列表里的「Python 3.6.8」,右键选择「卸载」。
- 检查环境变量:右键「此电脑」→「属性」→「高级系统设置」→「环境变量」,在系统变量的
Path中,删除所有指向Python36的路径,确保Python37的路径排在最前面。
第三步:验证操作结果
重启你的终端/命令提示符,运行以下命令确认:
python --version应该返回Python 3.7.9pip -V应该返回对应3.7.9的pip版本(比如你本地的20.2.2)
第四步:修复Heroku的pip版本问题
现在本地版本统一了,还要确保Heroku用对版本:
- 在你的Flask项目根目录创建一个
runtime.txt文件,内容只写:python-3.7.9,这样Heroku会明确使用这个Python版本,对应的pip版本也会匹配。 - 确保项目里有
requirements.txt,把所有依赖列清楚,Heroku会用对应版本的pip来安装这些依赖。
重要提醒
- 绝对不要删除Linux系统自带的Python(比如CentOS、Ubuntu默认的Python),否则可能导致系统工具无法运行,优先用
update-alternatives切换版本。 - 操作前如果有正在使用的虚拟环境,记得检查虚拟环境的Python指向,避免后续出错。
内容的提问来源于stack exchange,提问作者watersheep23
相关产品推荐
相关产品推荐

