所有的 Python 开发者都清楚,Python 之所以如此受欢迎,能够在众多高级语言中,脱颖而出,除了语法简单,上手容易之外,更多还要归功于 Python 生态的完备,有数以万计的 Python 爱好者愿意以 Python 为基础封装出各种有利于开发的第三方工具包。
这才使用我们能够以最快的速度开发出一个满足基本需要的项目,而不是每次都重复造轮子。
Python 从1991年诞生到现在,已经过去28个年头了,这其间产生了数以万计的第三方包,且每个包都会不断更新,会有越来越多的版本。
当你在一个复杂的项目环境中,如果没有一个有效的依赖包管理方案,项目的维护将会是一个大问题。
pip 是官方推荐的包管理工具,在大多数开发者眼里,pip 几乎是 Python 的标配。
当然也有其他的包管理工具
distutils:仅用于打包和安装,严格来讲不算是包管理工具 setuptools: distutils的增强版,扩展了distutils,提供更多的功能,引入包依赖的管理,easy_install就是它的一个命令行工具, 引入了 egg 的文件格式。 # 从 pypi 上下载安装 easy_install pkg # 从本地的 tgz 文件中安装 easy_install pkg.tgz # 从本地的 egg 文件中安装 easy_install pkg.egg Pipenv:一个集依赖包管理(pip)及虚拟环境管理(virtualenv)的工具
还有其他的,这里不一一列出。
今天的主角是 pip ,大家肯定不会陌生。但我相信不少人,只是熟悉几个常用的用法,而对于其他几个低频且实用的用法,却知之甚少,这两天,我查阅官方文档,把这些用法整理了一下,应该是网络上比较全的介绍。
1. 查询软件包
查询当前环境安装的所有软件包
$ pip list
查询 pypi 上含有某名字的包
$ pip search pkg
查询当前环境中可升级的包
$ pip list --outdated
查询一个包的详细内容
$ pip show pkg
2. 下载软件包
在不安装软件包的情况下下载软件包到本地
$ pip download --destination-directory /local/wheels -r requirements.txt
下载完,总归是要安装的,可以指定这个目录中安装软件包,而不从 pypi 上安装。
$ pip install --no-index --find-links=/local/wheels -r requirements.txt
当然你也从你下载的包中,自己构建生成 wheel 文件
$ pip install wheel $ pip wheel --wheel-dir=/local/wheels -r requirements.txt
3. 安装软件包
使用 pip install <pkg> 可以很方便地从 pypi 上搜索下载并安装 python 包。
如下所示
$ pip install requests
这是安装包的基本格式,我们也可以为其添加更多参数来实现不同的效果。
3.1 只从本地安装,而不从 pypi 安装
# 前提你得保证你已经下载 pkg 包到 /local/wheels 目录下 $ pip install --no-index --find-links=/local/wheels pkg
3.2 限定版本进行软件包安装
以下三种,对单个 python 包的版本进行了约束
# 所安装的包的版本为 2.1.2 $ pip install pkg==2.1.2 # 所安装的包必须大于等于 2.1.2 $ pip install pkg>=2.1.2 # 所安装的包必须小于等于 2.1.2 $ pip install pkg<=2.1.2
以下命令用于管理/控制整个 python 环境的包版本
# 导出依赖包列表 pip freeze >requirements.txt # 从依赖包列表中安装 pip install -r requirements.txt # 确保当前环境软件包的版本(并不确保安装) pip install -c constraints.txt
3.3 限制不使用二进制包安装
由于默认情况下,wheel 包的平台是运行 pip download 命令 的平台,所以可能出现平台不适配的情况。
比如在 MacOS 系统下得到的 pymongo-2.8-cp27-none-macosx_10_10_intel.whl 就不能在 linux_x86_64 安装。
使用下面这条命令下载的是 tar.gz 的包,可以直接使用 pip install 安装。
比 wheel 包,这种包在安装时会进行编译,所以花费的时间会长一些。
# 下载非二进制的包 $ pip download --no-binary=:all: pkg # 安装非二进制的包 $ pip install pkg --no-binary
3.4 指定代理服务器安装
当你身处在一个内网环境中时,无法直接连接公网。这时候你使用pip install 安装包,就会失败。
面对这种情况,可以有两种方法:
下载离线包拷贝到内网机器中安装使用代理服务器转发请求
第一种方法,虽说可行,但有相当多的弊端
步骤繁杂,耗时耗力无法处理包的依赖问题
这里重点来介绍,第二种方法:
$ pip install --proxy [user:passwd@]http_server_ip:port pkg
每次安装包就发输入长长的参数,未免有些麻烦,为此你可以将其写入配置文件中:$HOME/.config/pip/pip.conf
对于这个路径,说明几点
不同的操作系统,路径各不相同# Linux/Unix: /etc/pip.conf ~/.pip/pip.conf ~/.config/pip/pip.conf # Mac OSX: ~/Library/Application Support/pip/pip.conf ~/.pip/pip.conf /Library/Application Support/pip/pip.conf # Windows: %APPDATA%\pip\pip.ini %HOME%\pip\pip.ini C:\Documents and Settings\All Users\Application Data\PyPA\pip\ pip.conf (Windows XP) C:\ProgramData\PyPA\pip\pip.conf (Windows 7及以后)
若在你的机子上没有此文件,则自行创建即可
如何配置,这边给个样例:
[global] index-url = http://mirrors.aliyun.com/pypi/simple/ # 替换出自己的代理地址,格式为[user:passwd@]proxy.server:port proxy=http://xxx.xxx.xxx.xxx:8080 [install] # 信任阿里云的镜像源,否则会有警告 trusted-host=mirrors.aliyun.com
3.5 安装用户私有软件包
很多人可能还不清楚,python 的安装包是可以用户隔离的。
如果你拥有管理员权限,你可以将包安装在全局环境中。在全局环境中的这个包可被该机器上的所有拥有管理员权限的用户使用。
如果一台机器上的使用者不只一样,自私地将在全局环境中安装或者升级某个包,是不负责任且危险的做法。
面对这种情况,我们就想能否安装单独为我所用的包呢?
庆幸的是,还真有。
我能想到的有两种方法:
使用虚拟环境将包安装在用户的环境中
虚拟环境,之前写过几篇文章,这里不再展开讲。
今天的重点是第二种方法,教你如何安装用户私有的包?
命令也很简单,只要加上 --user 参数,pip 就会将其安装在当前用户的 ~/.local/lib/python3.x/site-packages 下,而其他用户的 python 则不会受影响。
pip install --user pkg
来举个例子
# 在全局环境中未安装 requests [root@localhost ~]# pip list | grep requests [root@localhost ~]# su - wangbm [root@localhost ~]# # 由于用户环境继承自全局环境,这里也未安装 [wangbm@localhost ~]# pip list | grep requests [wangbm@localhost ~] # pip install --user requests [wangbm@localhost ~]# pip list | grep requests requests (2.22.0) [wangbm@localhost ~]# # 从 Location 属性可发现 requests 只安装在当前用户环境中 [wangbm@ws_compute01 ~] $ pip show requests --- Metadata-Version: 2.1 Name: requests Version: 2.22.0 Summary: Python HTTP for Humans. Home-page: http://python-requests.org Author: Kenneth Reitz Author-email: me@kennethreitz.org Installer: pip License: Apache 2.0 Location: /home/wangbm/.local/lib/python2.7/site-packages [wangbm@localhost ~]$ exit logout # 退出 wangbm 用户,在 root 用户环境中发现 requests 未安装 [root@localhost ~]$ pip list | grep requests root@localhost ~]$
当你身处个人用户环境中,python 导包时会先检索当前用户环境中是否已安装这个包,已安装则优先使用,未安装则使用全局环境中的包。
验证如下:
>>> import sys >>> from pprint import pprint >>> pprint(sys.path) ['', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/home/wangbm/.local/lib/python2.7/site-packages', '/usr/lib64/python2.7/site-packages', '/usr/lib64/python2.7/site-packages/gtk-2.0', '/usr/lib/python2.7/site-packages', '/usr/lib/python2.7/site-packages/pip-18.1-py2.7.egg', '/usr/lib/python2.7/site-packages/lockfile-0.12.2-py2.7.egg'] >>>
4. 卸载软件包
就一条命令,不再赘述
$ pip uninstall pkg
5. 升级软件包
想要对现有的 python 进行升级,其本质上也是先从 pypi 上下载最新版本的包,再对其进行安装。所以升级也是使用 pip install,只不过要加一个参数 --upgrade。
$ pip install --upgrade pkg
在升级的时候,其实还有一个不怎么用到的选项 --upgrade-strategy,它是用来指定升级策略
花图问答还为您提供以下相关内容希望对您有帮助:
如何使用pip命令
pip 可以与虚拟环境一起使用以隔离不同的 Python 安装。要为虚拟环境安装包,请使用以下命令:pip install --target virtual_environment_pathpackage_name/package_name/virtual_environment_path 高级用法 选项:pip 提供许多选项来自定义安装过程,例如 --no-cache-dir 和 --user。包元数据:pip 可以...
pipl怎么用?
1. 安装PiPL 首先,你需要在你的计算机上安装PiPL。你可以从其官方网站下载最新的安装包,然后按照指示进行安装。2. 了解基本命令 安装完成后,你可以通过命令行或脚本调用PiPL。你需要了解其基本命令,如查询命令、添加信息命令等。3. 使用查询功能 使用PiPL的查询功能,你可以查找特定的编程语言或编程...
如何切换pip的源:详细指南
切换pip源的详细指南如下:一、临时切换pip源 通过命令行参数指定镜像源:使用pip install i <镜像源URL> <包名>的格式进行安装。例如,使用豆瓣镜像源安装requests包,可以输入pip install i pypi.douban.com/simple requests。设置环境变量:在Linux或macOS系统上,可以通过export命令设置PIP_INDEX_URL环...
【走进科学】大屏党必看!一屏当双屏的功能你用过吗?大屏显示器不用分 ...
PBP(Picture by Picture)即画外画模式,允许同时显示两个图像(左右图像)。在开启PBP功能后,可能出现的画面变形问题,是因为系统在未能正确识别分屏状态的分辨率。如何开启PBP功能?通过OSD菜单按键打开显示器菜单,选择第一级菜单中的第4项——【PIP/PBP】,选择【PIP/PBP模式】,再选择【PBP1:1】...
pycharm中用pip命令安装tensorflow(超级详细)
在 PyCharm 中通过 pip 命令安装 TensorFlow 的步骤详尽指南如下:第一步:确保您使用的 Python 版本为 64 位。如果您的计算机上已经安装了多个版本的 Python,需要确保 PyCharm 使用的是 64 位版本。如果当前版本为 32 位,您可以下载并安装 64 位版本的 Python,不必卸载已安装的 Python,只需将新...
pip安装fastapi、uvicorn、transformers、torch+cpu
使用 Anaconda Prompt 创建名为“pytorch”的新环境,指定 Python 版本为 3.9。在确认后,会自动安装此环境。进入“pytorch”环境,验证 PyTorch 是否安装成功,只需在命令行执行 Python 并导入 torch,若无错误信息,说明安装成功。安装完 PyTorch 后,继续安装 Transformers。此步骤与安装 PyTorch 类似,...
如何在 Debian 12 上安装 Pip
Python 模块可以全局安装(所有项目和用户都可以访问)或基于项目安装。如果您想全局安装 Python 模块,您应该更喜欢使用 apt 管理器将其作为软件包安装。在没有可用软件包的情况下,才使用 pip 在全球范围内安装 Python 模块。Pip 主要在虚拟环境中使用。Python Virtual Environment 允许您在特定项目的隔离...
pip升级(Python pip upgrade)
如显示版本过低,执行升级操作。首先,利用pip自带的工具升级pip,输入以下命令:pip install --upgrade pip。若提示需要管理员权限,则在命令前添加'sudo'。升级完成后,再次输入pip --version确认版本已更新。至此,pip升级过程结束。通过简化步骤与清晰说明,小白用户也能轻松完成pip升级,无需再为复杂...
pip安装pytorch以及可能的失败原因
首先,访问pytorch官网,通过其页面底部的"Package"选项选择使用pip进行安装。在"Compute Platform"部分,选择CUDA则表示安装的pytorch具备GPU计算能力;选择CPU则不支持GPU计算。安装CUDA版本的选择取决于您的计算机已安装的CUDA版本。通过在命令提示符中输入`cuda -version`,检查计算机是否已安装CUDA以及版本号...
在Linux 中安装和使用 pipx | Linux 中国
使用pipx uninstall package_name,如卸载numpy: pipx uninstall numpypip与pipx:选择的智慧pipx弥补了pip在管理Python应用时的不足,它遵循Python最佳实践,允许用户在享受全局可用性的同时,保持虚拟环境的隔离。对于非开发用户,pipx为使用发行版仓库中未包含的Python应用提供了可能。无论你是新接触pipx...
Copyright © 2019-2025 huatuowenda.com 版权所有 湘ICP备2023022495号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务