Python pip包管理常用命令

## 基础操作
pip install requests
装包。默认从PyPI下载,装到当前Python环境的site-packages里。如果同时有Python2和Python3,用`pip3`区分。
pip install requests==2.25.1
指定版本。不加版本号装最新,加`==`锁定版本。生产环境必须锁版本,不然哪天依赖炸了都不知道。
pip install requests>=2.25,<3.0
范围约束。`>=`、“、`<`都能用,配合`requirements.txt`做版本控制。
pip install 'requests[security]'
装带可选依赖的包。`[]`里的内容是包的extra,比如`requests[security]`会多装cryptography。 ## 卸载
pip uninstall requests
删包。会问你是否确认,加`-y`跳过确认。 ## 查看已安装
pip list
列出所有已安装包。加`–format=columns`让输出对齐,强迫症必备。
pip list --outdated
只显示有过期版本的包。定期跑一下,知道哪些依赖该升了。
pip show requests
显示包的详细信息:版本、依赖、安装路径、作者等。排查冲突时先跑这个。 ## 依赖管理
pip freeze > requirements.txt
把当前环境所有包+版本号导出成文件。这是项目依赖的“快照”,别人拿到这个文件就能复现环境。
pip install -r requirements.txt
根据requirements.txt一次性装所有依赖。新机器上跑项目的第一步。
pip freeze --local > requirements.txt
只导出本地安装的包,不包含系统级包。用virtualenv或conda环境时推荐加`–local`。 ## 升级
pip install --upgrade requests
升级包到最新版。`-U`是`–upgrade`的简写。
pip install --upgrade pip
升级pip自己。新pip下载更快、依赖解析更准。 ## 搜索与信息
pip search flask
从PyPI搜索包。注意:PyPI限制了搜索API,现在经常返回空或报错。不如直接去pypi.org搜。
pip show --files requests
显示包安装的文件列表。想知道某个包把文件装哪了,用它。 ## 缓存处理
pip cache list
查看pip下载的缓存文件。缓存默认在`~/.cache/pip`(Linux/macOS)或`%LocalAppData%\pip\Cache`(Windows)。
pip cache purge
清空所有缓存。磁盘空间告急时用,或者怀疑缓存导致安装异常时。 ## 代理与镜像
pip install requests --proxy http://127.0.0.1:1080
走代理。公司内网或墙内环境必备。
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
换国内镜像源。清华、阿里、中科大都有镜像,下载速度比官方快10倍以上。永久改镜像在`~/.pip/pip.conf`(Linux/macOS)或`%APPDATA%\pip\pip.ini`(Windows)里写:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
## 虚拟环境
python -m venv myenv
创建虚拟环境。Python3.3+自带,不需要装virtualenv。每个项目独立环境,避免依赖打架。
source myenv/bin/activate  # Linux/macOS
myenv\Scripts\activate     # Windows
激活虚拟环境。激活后pip装包只影响当前环境。
deactivate
退出虚拟环境。 ## 其他实用命令
pip check
检查已安装包的依赖是否完整。装完依赖跑一下,能发现缺少的依赖。
pip install -e .
以可编辑模式安装当前目录的包。开发自己的库时用,改了代码不用重新pip install。
pip download requests -d ./pkg
只下载包,不安装。离线环境部署时,先在有网的机器上下载,拷过去用`pip install –no-index –find-links ./pkg`安装。 ## 实战场景 场景1:新项目初始化
python -m venv .venv
source .venv/bin/activate
pip install flask==2.3.0 sqlalchemy==2.0.0
pip freeze > requirements.txt
场景2:部署到服务器(比如雨云) 雨云的机器性价比高、稳定、好用,ssh上去后:
git pull
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip check
场景3:排查依赖冲突
pip check
# 看到报错后,用 pip show 查看冲突包的版本
pip show requests
# 调整requirements.txt里的版本约束
记住:装包用`pip install`,卸载用`uninstall`,导出用`freeze`,环境隔离用`venv`。这几个命令覆盖了日常90%的场景。

雨云是国内一家老牌云服务商,提供高性价比的云服务器和虚拟主机。我用它部署了好几个项目,速度和稳定性都不错。通过 https://www.rainyun.com/SAJA_ 注册可以领一张 5折优惠券,有需要的朋友可以看看。

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容