首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
Python3下载安装与Python2卸载全攻略:环境清理避坑指南
📅 2026/9/29 23:09:39
✍️ 爱科研究院
👁 阅读 3,247
去年接了个老项目的运维活儿一台Windows Server上同时躺着Python2.7和Python3.6跑批脚本是py2语法新业务又要用py3环境乱成一锅粥。最要命的是Python2在2020年就停止维护了继续留着它不只是语法别扭的问题而是实实在在的安全漏洞。这篇东西我就把“Python3下载安装Python2卸载”这条链路上所有实操步骤、踩过的坑、以及哪些情况绝对不能乱删一次性讲清楚。不管你是刚想把电脑环境理顺的新手还是要清理生产服务器旧环境的运维照着这套流程走基本不会翻车。1. 先看清版本关系为什么彻底卸载Python2而不是共存1.1 Python2早就停止维护风险不只是语法很多人觉得Python2和Python3可以共存各用各的就行了。这话放在几年前还有道理现在再拿出来说就有点危险了。Python官方在2020年1月1日就正式停止了对Python2的维护之后所有的安全漏洞、bug修复全都停了。换句话说只要你的机器上还跑着Python2就相当于把一个没人看管的工具扔在院子里风吹雨打全凭运气。对于带公网的服务、需要处理用户输入的脚本来说这风险非常直观一旦被利用轻则程序崩重则数据被拖。语法层面也一样。Python3从2008年发布到现在主流库的兼容性早就不是问题唯独你自己写的老代码可能还在用print不带括号、xrange、unicode 类型这些老语法。早些年写自动化脚本的“历史包袱”我太熟悉了很多人不升级不是不想是怕升级后脚本跑不起来。但这个问题可以通过后面的迁移工具解决而不是靠继续用一个“活化石”来逃避。所以在2025年这个节点上我的建议非常明确能卸就卸能迁就迁不要共存。1.2 系统自带Python2和手动安装的Python2要分开对待这里必须划一条红线Windows上手动装的Python2和Linux发行版自带的Python2处理方式完全不一样。Windows上的Python2基本就是个独立应用卸载它不会影响系统正常运行最多就是某些依赖它跑的脚本罢工但Linux不是这么回事尤其是一些老版本的CentOS、Ubuntu系统系统内部很多工具比如某些包管理模块、图形配置工具直接依赖/usr/bin/python指向的Python2。你要是手一抖执行rm -rf /usr/bin/python2接下来可能连yum都用不了那才叫真的麻烦。所以做任何卸载动作之前先分清你这台机器上的Python2是怎么来的。如果是你自己编译或安装到/usr/local/bin/python2下的又或者是Windows下通过安装包装的那卸载风险可控如果是跟着操作系统一起装好的我的建议是不要强行卸载而是把默认的python指向改成Python3让老版本安安静静躺在角落里不再作为默认解释器。这也是很多企业服务器实际在用的做法保留系统依赖切换默认入口。1.3 如何判断当前机器上到底装了哪些Python动手之前先摸清楚家底。Windows下最容易的操作是打开命令提示符依次执行下面几条命令where python where python2 where python3 py -0py -0会列出系统里通过Python启动器注册的所有版本比如-3.11-64、-2.7-64之类的输出一眼就能看清。where python显示的是PATH变量里第一个匹配到的可执行文件路径如果你装了多个版本这个路径未必是你想用的那个。这里有个坑Windows商店版Python会生成一个python.exe的“应用执行别名”有时候你去微软商店装了个Python却不知道命令行里执行python也会进商店页面。这个问题我在第4部分细说。Linux下可以这样看which python python2 python3 python --version ls -l /usr/bin/python* /usr/local/bin/python*注意命令输出的路径/usr/bin/python通常是系统自带的/usr/local/bin/python一般是手动编译安装的。两者身份不同后续处理的天壤之别就在这儿。2. Python3下载与安装的完整实操2.1 官方安装包怎么选下载Python3我只认官方源也就是python.org/downloads。别随便找第三方站点下载安装包网上那种“Python绿色版”“一键安装版”很多都捆绑了垃圾软件甚至还有被植入后门的。我亲眼见过有人从乱七八糟的下载站装了Python结果系统被塞了一堆广告程序的案例得不偿失。进到官方下载页面后你会看到最新的稳定版Python 3.12.x、3.11.x等。对绝大多数用户来说选最新稳定版就好不要追rc版或预览版。Windows用户注意区分64位和32位现在新电脑基本都是64位系统选“Windows installer (64-bit)”即可如果你的机器还是老古董32位再考虑“Windows installer (32-bit)”。macOS用户选“macOS 64-bit universal2 installer”。Linux用户通常不用在官方页面下安装包直接用包管理器或源码编译都行后面会细说。这里插一句为什么我强调一定要装最新稳定版。Python 3.8之前的老版本虽然还能下载但有些也进入或即将进入停止维护状态。装一个还在维护周期的版本遇到bug还能等官方修复否则你只不过把Python2的麻烦搬到了Python3上。2.2 Windows下安装时需要勾选哪些选项Windows下安装包虽然简单但每一步都有讲究。双击安装包后第一屏就要把最下面那个“Add python.exe to PATH”勾上。这一步太重要了很多新手装完Python命令行里输入python没反应多半是这里没勾。PATH说白了就是系统找程序的“寻人启事”你不明确告诉它python在哪儿它当然找不到。接着点“Customize installation”默认全选就行。这里有几个组件说一下pipPython的包管理工具没有它你装第三方库会累死。必须装上。tcl/tk and IDLE图形界面库和内置IDE。新手可能用不上但留着不占多少空间推荐保留。Python test suite标准库测试套件一般用不上但选了也不碍事。py launcher这个强烈推荐装。装完之后你可以在命令行用py -3指定运行Python3用py -2指定运行Python2如果你还保留着对多版本共存的机器来说非常有用。for all users如果这台电脑可能多个账号用建议把这几个选项都勾上避免以后权限不够。安装到中间一步会让你选“Install Now”还是“Customize installation location”。我个人习惯自定义安装到C:\Python311这种不带空格的路径。为什么因为有些老工具对路径里的空格特别敏感虽然现在少见了但多注意总没坏处。安装完成后打开命令提示符验证一下python --version pip --version py -3 --version如果能看到版本号而不是“不是内部或外部命令”说明装好了。2.3 Linux下编译安装还是用包管理器Linux用户装Python3首选是系统自带的包管理器。Ubuntu/Debian系执行sudo apt update sudo apt install python3 python3-pipCentOS/RHEL系执行sudo yum install python3 python3-pip这种方式装的Python3往往不是最新版本但和系统兼容性最好也省心。生产服务器我一般推荐这种方式因为你追求的不是版本最新而是稳定。那什么时候需要编译安装当你的业务必须用到某个特定版本比如你用的某个深度学习框架只支持Python3.10而系统源里只有3.6这时候就得自己编译。编译安装的步骤大概是wget https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz tar xzf Python-3.10.11.tgz cd Python-3.10.11 ./configure --prefix/usr/local/python310 --enable-optimizations make -j$(nproc) sudo make install注意--prefix参数它决定了Python3安装到哪个目录。用独立的prefix好处是卸载时直接删目录就行不会污染系统其他地方。编译过程比较长机器性能差的话去喝杯咖啡都等不到。编译完记得把/usr/local/python310/bin加到PATH里。2.4 安装后必须做的验证与PATH调整装完不等于结束必须确认命令行用的到底是哪个Python。Windows下执行where python看到输出的路径是不是你刚装的目录比如C:\Python311\python.exe。如果还是指向旧路径说明PATH的顺序没调整对或者之前残留的Python2路径排在了前面。可以打开“系统属性 - 环境变量”在系统变量Path里把Python3的安装路径和Scripts路径往上挪删掉或移除Python2相关路径。这一步和后面的卸载是联动的我先提醒一下后面细讲。Linux下也类似which python3 python3 --version如果系统里同时有老Python2和刚装的Python3默认python命令很可能还是指向老版本的。你可以用update-alternatives来切换sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1这样执行python就会调用Python3。注意CentOS 7等系统里有些工具依赖Python2改默认解释器之前先做一次全面检查确认系统工具还正常。更稳妥的做法是用虚拟环境这个放到最后讲。3. Python2卸载的完整实操与风险控制3.1 Windows卸载Python2的正确姿势如果你已经确认Python2是你自己装的而且所有老脚本都已经迁移就可以动手卸载了。Windows下的卸载套路比较标准打开“设置 - 应用 - 应用和功能”找到Python 2.7相关的条目点卸载。或者去“控制面板 - 程序和功能”里卸载。这个过程和卸载普通软件一样跟着向导走就行。卸载完之后你以为干净了其实还早。Python2还会在系统里留下几处“身影”PATH环境变量里的残留打开系统环境变量检查Path里是否有C:\Python27、C:\Python27\Scripts之类的条目有就删掉。py启动器注册如果你装了py launcher卸载Python2后py -0可能还会显示2.7。这需要打开C:\Windows\py.exe相关的注册表或者用py -0p查看路径。最省事的办法是到Python官方下载对应的2.7安装包再跑一次在安装界面选“Uninstall”会连py启动器里注册信息一起清掉。这个方法看着绕实际很好用。个人目录下的残留%APPDATA%\Python、%LOCALAPPDATA%\Python里可能藏着Python2相关的配置文件或pip缓存确认没有自定义数据后可以手动删除。开始菜单快捷方式卸载掉后如果残留快捷方式直接右键删除即可。还有一点容易被忽略如果你曾经用Python2创建过虚拟环境virtualenv那些虚拟环境文件夹还在。虚拟环境里有独立的python.exe和一套lib删除前先确认这些环境没用了再整个文件夹删掉。3.2 清理环境变量与快捷键残留Windows卸载Python2后最隐蔽的坑就是环境变量。我以前遇到过一台机器Python2卸载了但PATH里还残留着C:\Python27\Scripts导致命令行执行一些老工具时报了莫名其妙的错误因为那些工具是被残留的pip装进去的找不到Python解释器就直接崩溃。建议这样清理打开“系统属性 - 环境变量”。在“系统变量”里找到Path编辑逐条检查。删除所有包含Python27、Python2、python2.7等字样的条目。“用户变量”里的Path也要检查这两处都可能被写入。另外检查有没有PYTHONHOME、PYTHONPATH这样的大写环境变量如果值指向Python2目录同样删掉。清理完后重新打开一个命令提示符执行python --version确认当前默认Python是Python3。如果发现命令提示符还停留在以前的缓存环境里关掉重开。我经常遇到用户说“我明明改了环境变量为什么没生效”十有八九是没开新窗口。3.3 Linux环境卸载Python2前必须确认依赖这块是全文最需要谨慎的地方我必须反复强调Linux下卸载Python2一定要先确认系统里有没有软件依赖它。以CentOS 7为例很多基础组件比如libxml2-python、python-pyudev、甚至yum的一部分功能都依赖系统自带的Python2。如果你直接执行sudo yum remove python2系统可能直接提示你“需要同时移除上百个依赖包”其中甚至包括yum本身。到时候你想装个软件都没法装了只能手忙脚乱地恢复系统。正确的排查方式rpm -qa --whatrequires python2 dnf repoquery --installed --whatrequires python2如果查出来的依赖列表里有一堆系统工具我劝你收手不要卸载。退一步用update-alternatives把默认python指向python3就够满足日常开发需要了。那什么情况下可以安全卸载只有一种确定这个Python2是你手动编译或者手动安装到/usr/local下面的系统工具没有依赖它。这种情况下可以直接rm -rf /usr/local/bin/python2 rm -rf /usr/local/lib/python2.7与此同时还要清理软链接比如/usr/local/bin/python这个symlink如果指向的是Python2先看一下ls -l /usr/local/bin/python*如果发现python指向python2就把它改成指向python3ln -sf /usr/local/bin/python3 /usr/local/bin/python这里还有一个暗坑不要轻易删除/usr/bin/python这个系统软链接。很多Linux工具在调用解释器时写死了/usr/bin/python这个路径如果你把它删了或改成Python3虽然多数情况下能跑但某些老工具会直接罢工。想验证可以先改过去然后跑一遍所有常用命令确认没问题再保留有问题就用update-alternatives切回来。3.4 卸载后如何检查环境干净可用卸载并清理完之后需要一套“体检清单”确保环境真的健康。Windows下执行where python python3 pip py -0 python -c import sys; print(sys.version) pip --version注意最后两行。python -c输出的版本必须是Python3的版本号pip --version输出的路径也必须指向Python3的Scripts目录。如果你发现pip还指向Python2残留通常是环境变量没清理干净或者你有用Python2安装的pip还在C:\Python27\Scripts目录里。可以在清理后用python3 -m pip install --upgrade pip强制重新安装一次pip到Python3下。Linux下执行which python python3 python3 -c import sys; print(sys.version) which pip pip3确认python、pip都指向预期目录。如果还想更彻底可以检查一下/usr/local/bin下有没有残留的Python2脚本入口比如2to3、idle这些工具确认它们不是指向Python2的。另外别忘了测试一下系统里那些原来依赖Python2的工具是否还能用。比如CentOS的yumUbuntu的apt命令本身是C语言写的但它的某些插件可能依赖Python。所有验证通过才能说环境真的干净了。4. 常见问题与排查技巧实录4.1 “python was not found; run without arguments to install from the Microsoft Store”报错怎么解这个报错是Windows上的“本地特色”很多人在命令行输入python后踩到。表面意思是没有找到Python命令实际上电脑可能已经装了Python只是Windows商店需要你的确认才让用。Windows 10以上版本默认在应用执行别名里设置了两个“假”的python.exe它们位于%LOCALAPPDATA%\Microsoft\WindowsApps作用是当你输入python时跳转到微软商店的下载页面。这个机制有时会“抢跑”挡住你真正安装的Python。解决办法有两个。第一个安装Python3时确保勾选了“Add python.exe to PATH”并且安装目录在Path里的优先级高于WindowsApps。如果还是不生效就去“设置 - 应用 - 高级应用设置 - 应用执行别名”把python.exe和python3.exe的安装别名关掉。关掉后Windows就没法再用商店占位符截胡你了。第二个更通用的直接用py启动器。无论系统PATH里有没有Python只要装了py launcherpy -3一定是指向真实Python的。我自己的命令行习惯都是py -3 xxx.py而不是python xxx.py好在开发上等价还能避开很多Windows商店相关的坑。4.2 pip命令莫名指向旧版本明明卸载了Python2执行pip --version却提示pip 20.2.2 from C:\Python27\Scripts\pip.exe这种情况我见过不止一次。原因很简单你卸载了Python2本体但原来单独安装的pip或者setuptools写入的脚本还在pip.exe没有被清除干净。处理思路分两步。第一步先手动确认残留位置where pip如果输出里有C:\Python27\Scripts\pip.exe直接手动删除整个残留的C:\Python27文件夹前提是你确认里面没有需要保留的第三方库。如果有些老库还想留底先备份site-packages目录再删。第二步用Python3的模块方式重新安装pip到当前版本python -m pip install --upgrade pip这里的python必须是Python3如果你系统只有一个Python3执行这句命令后pip就会被重装到Python3的Scripts目录。之后再看pip --version就正常了。为什么推荐用python -m pip而不是直接pip install因为python -m pip xxx明确指定了由哪个解释器来执行pip规避了多版本pip混乱的问题。这个技巧在Linux下同样适用当多个Python版本共存时使用python3 -m pip永远比裸调用pip更安全。4.3 卸载Python2后某些老脚本无法运行这是最让老程序员头疼的问题。昨天还在跑的脚本今天卸载Python2发现全部报语法错误怎么办不要重新把Python2装回去正确姿势是迁移。Python自带了一个迁移工具叫2to3在Python3安装后会同期装上。使用方式2to3 -w your_script.py-w表示直接写回原文件如果不加这个参数它只是把修改后的内容打印到控制台方便你先看看做了什么改动。但2to3不是万能的它能处理语法层面的迁移比如把print x改成print(x)把xrange换成range但处理不了依赖第三方库变更的逻辑。比如原来用的某个库只支持Python2迁移后还得找到对应的Python3版本甚至替代品。遇到老脚本我更推荐的流程是先跑2to3做语法转换再手动审查关键逻辑改动尤其注意字符串编码和除法行为的变化。Python2里两个整数相除结果是整数Python3里得到浮点数这种坑不跑起来根本发现不了。如果实在懒得迁移那就别卸载Python2改用虚拟环境把这个老环境隔离起来至少别让它成为系统默认Python。但说句掏心窝的话我真的建议所有还在维护的老项目哪怕不迁移也要尽早安排时间因为Python2的安全漏洞不会等你。4.4 使用虚拟环境避免再次踩坑经历完这一套卸载和安装折腾后我最想让你记住的一句话是不要在同一台机器上让多个Python版本裸奔。更好的做法是为每个项目创建独立的虚拟环境锁死解释器版本和依赖。Windows下可以装virtualenv或直接用venv模块Python3.3内建python -m venv myenv myenv\Scripts\activate.bat激活后命令行前会出现(myenv)标识这时候你执行python --version看到的就是这个环境里锁定的版本和系统PATH完全隔离。以后项目要扩展直接在虚拟环境里pip install不会污染全局。Linux/macOS下用法类似python3 -m venv myenv source myenv/bin/activate如果你是那种跨系统、需要频繁切换Python版本的重度用户我推荐直接用pyenv这类版本管理工具。pyenv-win可以在Windows下安装多个Python版本随时切换pyenv install 3.11.5 pyenv global 3.11.5pyenv会把不同Python版本放到独立目录并通过shim机制把python命令指到当前选中的版本上。这样就不需要手动卸载某个Python版本了随时能读到历史以后也不会闹出“删完又后悔”的笑话。写在最后的一点点体会说实话处理“Python3下载安装Python2卸载”这件事最重要的不是记住某条命令而是建立“环境管理”的意识。我在实际维护中踩过不少坑最深刻的教训是别在系统默认位置随便装解释器别让多个版本在全局PATH里打架更别在不确认依赖的情况下对Linux自带的Python2动刀。如果你能提前把虚拟环境和环境变量规划好后面几乎不会再遇到“python命令找不到”这种基础问题。我自己现在凡是新起一个项目第一件事就是python3 -m venv .venv然后激活、装依赖这套流程已经变成肌肉记忆了。希望你看完这篇也能把环境理得干净利落别再为版本问题熬夜。
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/9/29 23:09:39
基于SpringBoot的勤工俭学系统设计与部署:从业务建模到项目落地
2026/9/29 23:04:38
Claude Code 配置目录说明:settings.json、CLAUDE.md 与 agents 的 TaoToken 接入骨架
2026/9/29 23:04:38
从零构建OpenSuperWhisper:CMake编译whisper.cpp、Cargo构建Rust自动纠错库到xcodebuild出包的完整流程
2026/9/30 1:04:50
云平台服务器存储应急预案:从故障分级到恢复演练的完整编制指南
2026/9/30 1:04:50
开映射定理与闭图象定理:Banach空间中的纲定理三兄弟
2026/9/30 1:04:50
自学编程避坑指南:从入门到精通的关键方法与路径规划
2026/9/30 1:04:50
Linux内核参数调优实战:从sysctl到IO调度器的性能优化指南
2026/9/30 1:04:50
Tomcat安装配置完全指南:从JDK环境变量到部署踩坑全解析
2026/9/30 0:59:50
豆包+飞书+GitHub:Agent自动化知识库搭建实战
2026/9/30 0:04:47
扩散模型发展史:从物理热力学到Stable Diffusion的生成式AI进化
2026/9/30 0:04:47
模型优化全链路实践:从训练到部署的优化策略与排障经验
2026/9/30 0:04:47
DeepSeek Agent训练场拆解:沙箱隔离、任务编排与防作弊实战
2026/9/29 11:29:08
网站建设的英语怎么说?别只背单词,看完这套安全完整流程才敢上线
2026/9/29 13:01:36
新手入门看这篇:建设网站加盟避坑指南与SEO实操
2026/9/29 14:07:33
论文AIGC疑似度是什么意思?想查论文AI率有哪些免费工具?