刚开始学 Python 时,很多人都会遇到一个很典型的问题:
教程里的代码明明一模一样,复制到自己电脑上运行,却突然报错:
ModuleNotFoundError: No module named 'requests'
于是开始怀疑:Python是不是没装好?代码是不是写错了?
很多时候都不是,而是你的 Python 环境里还没有安装这个第三方库。
这时候,就轮到 pip 出场了。
一、pip到底是什么?
简单理解,pip就是Python安装和管理第三方包的工具。
Python本身已经自带了不少功能,但实际开发时,我们经常需要使用别人已经写好的库。
比如:
requests:发送网络请求
pandas:处理表格和数据
numpy:数值计算
matplotlib:数据可视化
这些功能没必要全部从头自己写,通常直接安装对应的第三方包即可。
目前Python Packaging Authority维护的官方指南仍将 pip 作为从 PyPI 安装Python包的标准工具。
所以我更愿意把它理解成:
Python负责运行代码,pip负责给Python“添装备”。
二、先别急着install,先检查pip
很多教程一上来就让新手输入:
能用当然没问题,但我更建议新手养成一个习惯:先确认你正在使用哪个Python和哪个pip。
Windows可以输入:
py --versionpy -m pip --version
macOS/Linux通常可以输入:
python3 --versionpython3 -m pip --version
这也是pip官方入门文档给出的检查方式。
为什么我更推荐 python -m pip 这种写法?
因为电脑上如果同时装了多个Python版本,单独输入pip时,很容易出现一个特别烦人的问题:
包装成功了,代码还是提示找不到。
原因往往不是没安装,而是pip把包装到了另一个Python环境里。
三、真正安装一个第三方库
比如我们要使用requests:
py -m pip install requests
macOS/Linux可以使用:
python3 -m pip install requests
安装完成后测试:
import requests
print(requests.__version__)
没有出现报错,基本就说明安装成功了。
如果项目必须使用指定版本,也可以:
py -m pip install requests==2.32.5
官方Python Packaging指南同样支持使用版本说明符指定具体版本或版本范围。
四、这几个pip命令,新手很值得记住
查看已经安装的包:
升级某个包:
py -m pip install --upgrade requests
卸载:
py -m pip uninstall requests
查看某个包的信息:
如果以后项目越来越多,还可以把当前环境中的依赖记录下来:
py -m pip freeze > requirements.txt
以后换电脑或者重新创建环境时,就不需要一个个回忆安装过什么。
五、为什么我不建议把所有库都装到一个环境?
这是很多新手前期感觉不到、后期特别容易踩的坑。
假设项目A依赖某个库的旧版本,而项目B需要新版本。如果所有项目都共用同一个Python环境,升级一个库,就可能把另一个原本正常运行的项目弄坏。
所以真正开始做项目以后,我建议逐渐养成:
一个项目,一个虚拟环境。
例如:
Windows激活:
然后再安装:
python -m pip install requests
虚拟环境会把不同项目的第三方包隔离开,这也是Python Packaging官方教程推荐的重要做法。
现在部分Linux发行版甚至会把系统Python标记为EXTERNALLY-MANAGED,阻止pip直接修改系统管理的Python环境,并引导用户使用虚拟环境。
这其实说明了一件事:虚拟环境不是高手才需要学的东西,而是Python项目管理中很基础的一环。
六、pip安装失败,别一看到红字就重装Python
新手最容易做的一件事,就是pip一报错马上卸载Python重装。
其实更应该先看最后几行错误信息。
常见问题无非是:Python和pip环境对应不上、网络下载失败、权限问题、Python版本与第三方包不兼容,或者当前环境受到系统管理限制。
尤其是看到:
externally-managed-environment
不要照着网上教程随便加参数强行绕过去。官方规范设计这个机制,本身就是为了避免pip破坏操作系统管理的Python环境,优先创建虚拟环境通常更稳妥。
写在最后
我觉得新手学pip,真正需要掌握的并不是背十几二十条命令。
先弄明白三个关系:
Python解释器 → pip → 第三方包
然后再进一步理解:
不同项目 → 不同虚拟环境 → 各自管理依赖
这条线理顺之后,以后遇到
“明明安装成功为什么import不了”
“为什么换台电脑项目跑不起来”
“为什么升级一个库另一个项目坏了”
你就不会只想着重装Python了。
会写代码只是第一步,会管理自己的Python环境,才算真正开始做项目。