Py学习  »  Python

Python新手必懂:pip到底是什么?安装第三方库一次讲清楚

码上编程学习社 • 3 天前 • 32 次点击  

刚开始学 Python 时,很多人都会遇到一个很典型的问题:

教程里的代码明明一模一样,复制到自己电脑上运行,却突然报错:

ModuleNotFoundErrorNo 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

很多教程一上来就让新手输入:

pip install requests

能用当然没问题,但我更建议新手养成一个习惯:先确认你正在使用哪个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 list

升级某个包:

py -m pip install --upgrade requests

卸载:

py -m pip uninstall requests

查看某个包的信息:

py -m pip show requests

如果以后项目越来越多,还可以把当前环境中的依赖记录下来:

py -m pip freeze > requirements.txt

以后换电脑或者重新创建环境时,就不需要一个个回忆安装过什么。

五、为什么我不建议把所有库都装到一个环境?

这是很多新手前期感觉不到、后期特别容易踩的坑。

假设项目A依赖某个库的旧版本,而项目B需要新版本。如果所有项目都共用同一个Python环境,升级一个库,就可能把另一个原本正常运行的项目弄坏。

所以真正开始做项目以后,我建议逐渐养成:

一个项目,一个虚拟环境。

例如:

py -m venv .venv

Windows激活:

.venv\Scripts\activate

然后再安装:

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环境,才算真正开始做项目。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/200562