大家好,欢迎来到 Crossin 的编程教室。
正所谓“人生苦短,我用 Python”。Python 的一大优势就是有丰富且易用的第三方模块,省去了大量重复造轮子的时间。对于已经熟悉 Python 开发的人来说,安装第三方模块是家常便饭的事情。但如果是刚入门的新手,很可能会被折腾一番。今天我就来梳理一下,如何正确安装 Python 的第三方模块。
Python 安装第三方模块有很多种方式,最常用的两种:通过包管理器、通过源码/文件安装。
1. 包管理器(pip)
许多系统和编程语言都提供了包管理器。你可以把“包管理器”想象成一个类似应用商店的工具。Python 的包管理器里就是各种第三方模块,只需要一条命令,就可以自动帮你下载并安装。
Python 最常用的包管理器是 pip。它会从一个叫做 PyPI(Python Package Index)的源里搜索你要的模块,找到后自动下载安装。PyPI 是 Python 官方的第三方模块仓库,供所有开发者下载或上传代码。
如果你用的是 Mac 或 Linux,系统或安装的 Python 中通常自带了 pip。如果你是 Windows 用户,在安装 Python 的时候,记得勾选 pip 和 Add python.exe to PATH,这样就会自动帮你配置好环境变量。
以 IPython 为例,通过 pip 命令进行安装,只需要在命令行(终端)输入:
如果网络正常,等待下载进度条走完,显示安装成功即可使用。在 Mac/Linux 下如果提示 Permission denied 权限问题,可以在命令前加上 sudo,或者加上 --user 参数安装到用户目录。
配置国内镜像源
因为 pip 默认的仓库服务器在国外,常常会因为网络问题导致下载缓慢或超时报错。针对这种情况,推荐配置国内的镜像网站。
如果你只是临时切换一次下载源,可以在命令后面加上 -i 参数指定镜像源地址:
pip install ipython -i https://pypi.tuna.tsinghua.edu.cn/simple
常用的国内镜像源地址包括:
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:https://mirrors.aliyun.com/pypi/simple/
中国科技大学:https://pypi.mirrors.ustc.edu.cn/simple/
如果你希望一劳永逸,可以通过以下命令直接设置全局永久镜像源,后续使用 pip install 时就会自动从国内源下载:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
2. 源码与 Wheel 文件安装
虽然 pip 能够搞定绝大多数模块的安装,但在某些特殊情况下(例如无法直接联网或需要手动下载特定的安装包),我们也可以进行手动安装。
(1)Wheel 文件安装(推荐)
在 PyPI 上,很多带有 C/C++ 编译依赖的复杂模块(如 NumPy、OpenCV 等)都会提供拓展名为 .whl 的 Wheel 预编译文件。下载对应的 .whl 文件到本地后,直接在命令行中运行:
这种方式无需本地编译,非常高效。
(2)源码安装
如果你下载到的是解压包(如 .tar.gz 或 .zip),解压后会看到里面包含 pyproject.toml 或 setup.py 文件。在命令行进入该解压目录后,运行以下命令:
pip 会自动识别当前目录下的源码包并进行安装。
无论哪种方法,最终都会将第三方模块安装至 Python 的安装路径下(通常名为 site-packages)。只要路径正确,就可以在代码里使用 import 引入这些模块。
经验分享
- 版本兼容性:安装第三方模块前,请确认该模块所支持的 Python 版本是否包含你当前使用的 Python 版本。
- 多版本混乱与虚拟环境:如果电脑上安装了多个版本的 Python,或者不同的项目依赖了同一个库的不同版本,直接全局安装容易造成环境污染。推荐使用 Python 官方内置的 venv 模块创建独立的虚拟环境:
激活虚拟环境后再进行依赖安装,可以有效隔离不同项目间的冲突。
- 复杂依赖与新一代工具:对于涉及到复杂科学计算或 C++ 依赖的场景,可以配合使用 Anaconda / Miniconda 等环境工具。而在现代 Python 项目开发中,也可以关注像 uv 这样用 Rust 开发的新一代极速包管理器。
最后,推荐一个著名的开源项目 Awesome Python,里面整理汇总了各类优秀的 Python 库与工具列表:
https://github.com/vinta/awesome-python
如果本文对你有帮助,欢迎点赞、评论、转发。你们的支持是我更新的动力~
添加微信 crossin123 ,加入编程教室共同学习~