pip -m install numpy_pip 工具使用指南

1. 前言

pip 是 Python 目前最流行、最方便的包管理工具。早期的 pythoneer 使用 setup.py 安装模块,用起来比较麻烦,所以很多程序员都曾经用过把模块文件直接扔进 python 安装路径下的 Lib\site-packages 文件夹的“暴力”安装法。后来稍微进化了一点,使用 easy_install工具,对应的是.egg模块文件。再后来,终于进化到了 pip 时代,对应的模块文件也变成.whl文件。

正因为 Python 的包管理工具在很长一段时间一直处于探索、成长期,模块下载和安装都非常不便,使得很多商业公司以提供便利的模块安装服务为卖点,推出了自己的发行版,比如 AnacondaPython 和 ActivePython。随着 pip 的横空出世,Python 包管理的暗黑时代终于结束了,但是,黎明并没有如期而至。由于Python的版本迭代不能兼容,导致开发者有时候需要同时保留多个版本,比如 py2 和 py3 并存,py3.3 和 py3.7 并存等,开发者在使用pip安装模块的时候,仍然会遇到各种各样的问题。

本文并不打算总结所有的应用问题,再给出解决方案,而是分析产生问题的根源,从而帮助初学者自已找到解决方案。本文最后附上 pip 命令的参数速查表,以便初学者查阅。

2. pip 背后的孙悟空和六耳猕猴

大多数人只知道 pip 是一个工具,却不知这里面隐藏着一个孙行者和六耳猕猴的故事。对面分明是六耳猕猴,很多人却以为是自己遇到了孙悟空。原来,使用 pip 工具安装模块有两种方式,一种是运行 pip.exe 可执行程序,一种是调用 python 解释器把 pip 模块当成脚本来运行。我们姑且把 pip.exe 称做六耳猕猴,把 pip 模块叫做孙悟空,以 py3.7 环境下安装 numpy 模块为例,讲述一下这两个捣蛋鬼的故事。

2.1 六耳猕猴(pip.exe)的栖息地及召唤术

一般使用 pip 安装 numpy 模块是这样的:

pip install numpy

在这里,安装任务交给了谁呢?孙悟空还是六耳猕猴?答案是六耳猕猴,也就是 pip.exe。如何验证?打开C:\Users\xufive\AppData\Local\Programs\Python\Python37\Scripts文件夹(默认安装路径下),会看到下图红框标注的 pip.exe 以及 pip3.exe 和 pip3.7.exe 三个文件。把 pip.exe 改名为  xpip.exe,就会发现,上面的安装命令无法执行了。这说明,这个安装命令中的 pip,就是Scripts文件夹中的 pip.exe。如果我们运行

pip3.exe install numpy

或者

pip3.7.exe  install numpy

同样可以成功安装numpy模块。

0fdf13f21f633e8ee8d5b4f1df48e8d9.png

      可是,有些同学会说,我也是使用默认设置安装的python,使用 pip 命令安装模块时,却提示说“ 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称”。六耳猕猴不听话,这究竟是咋回事呢?切莫慌张,只需依计而行,定能让六耳猕猴乖乖地干活。

先尝试运行下面的命令:

C:\Users\xufive\AppData\Local\Programs\Python\Python37\Scripts\pip.exe numpy

如果还是无法识别该命令,请检查你的python安装路径下Scripts文件夹中是否存在 pip.exe 文件,或者是否已经被(其他工具)修改为别的什么名字了。如果该命令能够被识别,说明系统的环境变量没有设置好。请右键单击“我的电脑”,点击“属性”菜单,在弹出窗口中选择“高级系统设置”,在“高级”标签页点击“环境变量”按钮,在弹出的窗口中选中用户变量(仅当前用户使用python)或者系统变量(所有用户均可使用python)的中path变量,点“编辑”按钮,增加 C:\Users\xufive\AppData\Local\Programs\Python\Python37\Scripts\ 项。之后,无论在哪个路径之下,都可以使用 pip 安装模块了。

88d931421ab47626c64f488140f320bc.png
       实际上,每一个版本的 python 都会配备一个六耳猕猴,每个六耳猕猴都有自己的栖息地,同时也有可能将自己的栖息地写入环境变量中。此时,为避免冲突,最好的办法是,给每个六耳猕猴取一个携带版本信息的名字,比如,pip2.exe、pip3.exe,这样我们就可以使用不同的名字召唤想要驱使的六耳猕猴了。

2.2 孙悟空(pip模块)的栖息地及召唤术

学会了召唤六耳猕猴,你一定非常期待召唤孙悟空了。命令很简单:

python -m pip install numpy

和六耳猕猴的召唤术相比,命令前面多了 python -m两部分。这里的 python 是指 python 解释器,-m 是 python 解释器的参数,意思是解释器运行的不是脚本文件,而是把 pip 模块——也就是孙悟空当作脚本运行。通常,孙悟空藏身在 C:\Users\xufive\AppData\Local\Programs\Python\Python37\Lib\site-packages\ 路径下, python 解释器自会找到它,我们无需费心。但是,能否找到 python 解释器,却是我们需要考虑的问题。安装 python 时,如果勾选了下图所示的复选框,我们就一定能轻松找到 python 解释器,否则就需要手工添加 C:\Users\xufive\AppData\Local\Programs\Python\Python37\ 路径到环境变量中。

0ad5046f19f3579ef80676a22f0015c8.png

     在系统复杂、安装混乱的情况下,相比较而言,召唤孙悟空要比召唤六耳猕猴的成功概率要高。这是因为,一来孙悟空的栖息地要比六耳猕猴安全,二来 python 解释器应用频繁,其路径早已被设置为环境变量了。

3 pip 子命令与通用选项

3.1 pip 子命令速查表

0d15130491d2720ceb3b61e1e6a36866.png

3.2 pip 通用选项速查表

755aa72cc13d757c7200336b2344745e.png

4. pip 使用详解

4.1 install 子命令

4.1.1 install 子命令选项

42ee89742832c4e8136b7600bbf3e5df.png

4.1.2 包索引选项

7088fd0e5dbffa1771fcbbe84c9a175f.png4.1.3 使用样例

PS C:\Users\xufive> pip install numpy # 默认从https://pypi.org/simple 下载
PS C:\Users\xufive> pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple/ # 从清华大学资源站点下载
PS C:\Users\xufive> pip install numpy -i https://mirrors.aliyun.com/pypi/simple/ # 从阿里云资源站点下载
PS C:\Users\xufive> pip install numpy -i https://pypi.mirrors.ustc.edu.cn/simple/ # 从中科大资源站点下载

4.2 uninstall 子命令

4.2.1 uninstall 子命令选项

a5dc14dff0878f8e0de99621a879a6b8.png

4.2.2 使用样例

PS C:\Users\xufive> pip uninstall numpy

4.3 list 子命令

4.3.1 list 子命令选项

fc225bb5b434332d46a65235fc91772c.png

4.3.2 使用样例

PS C:\Users\xufive> pip list -u
Package        Version--------------------------------------
altgraph       0.16.1
Pypubsub       4.0.3
pywin32-ctypes 0.2.0
tornado        6.0.3
torndb         0.3
tzlocal        2.0.0
wheel          0.33.6
xlrd           1.2.0

4.4 freeze 子命令

4.4.1 freeze 子命令选项

57f349387ddf0b33c0502ba8a8a589da.png

4.4.2 使用样例

PS C:\Users\xufive> pip freeze > requirements.txt  # 输出到文件
PS C:\Users\xufive> pip freeze --all # 列出所有的安装包
altgraph == 0.16.1
APScheduler == 3.6.1
basemap == 1.2.0
cycler == 0.10.0
freetype-py == 2.0.0.post6
ftp-client == 1.0.1

4.5 show 子命令

4.5.1 show 子命令选项

327bc1bd9274755aeb593862fab597ff.png

4.5.2 使用样例

PS C:\Users\xufive> pip show xlrd -f
Name: xlrd
Version: 1.2.0
Summary: Library for developers to extract data from Microsoft Excel™ spreadsheet files
Home-page: http://www.python-excel.org/
Author: John Machin
Author-email: sjmachin@lexicon.net
License: BSD
Location: c:\users\12721\appdata\local\programs\python\python37\lib\site-packages
Requires:
Required-by:
Files:
 ....\Scripts__pycache__\runxlrd.cpython-37.pyc
 ....\Scripts\runxlrd.py
 xlrd-1.2.0.dist-info\INSTALLER
 xlrd-1.2.0.dist-info\LICENSE
 xlrd-1.2.0.dist-info\METADATA
 xlrd-1.2.0.dist-info\RECORD
 xlrd-1.2.0.dist-info\WHEEL
 xlrd-1.2.0.dist-info\top_level.txt
 xlrd__init__.py
 xlrd__pycache____init__.cpython-37.pyc
 xlrd__pycache__\biffh.cpython-37.pyc
 xlrd__pycache__\book.cpython-37.pyc
 xlrd__pycache__\compdoc.cpython-37.pyc
 xlrd__pycache__\formatting.cpython-37.pyc
 xlrd__pycache__\formula.cpython-37.pyc
 xlrd__pycache__\info.cpython-37.pyc
 xlrd__pycache__\sheet.cpython-37.pyc
 xlrd__pycache__\timemachine.cpython-37.pyc
 xlrd__pycache__\xldate.cpython-37.pyc
 xlrd__pycache__\xlsx.cpython-37.pyc
 xlrd\biffh.py
 xlrd\book.py
 xlrd\compdoc.py
 xlrd\formatting.py
 xlrd\formula.py
 xlrd\info.py
 xlrd\sheet.py
 xlrd\timemachine.py
 xlrd\xldate.py
 xlrd\xlsx.py

4.6 check 子命令

检查包的依赖关系是否完整

4.6.1 使用样例

PS C:\Users\xufive> pip check xlrd
No broken requirements found.

4.7 config 子命令

4.7.1 config 子命令选项

21256cfe44fd00eda31ca186a6742490.png

4.8 search 子命令

4.8.1 search 子命令选项

a498a9aed3890b85c13e49d2773280ae.png

4.8.2 使用样例

PS C:\Users\xufive> pip search xlrd -i https://pypi.org/pypi
xlrd (1.2.0) - Library for developers to extract data from Microsoft Excel™
spreadsheet files
INSTALLED: 1.2.0 (latest)
pythonetl-xlrd (0.9.3dev) - Library for developers to extract data from Microsoft Excel™
spreadsheet files
xlrd-with-formulas (1.0.0) - Library for developers to extract data from Microsoft Excel™
spreadsheet files
xlrd-ignore-writeaccess-corruption (1.2.0.1) - Library for developers to extract data from Microsoft Excel™
spreadsheet files
xlrd-no-sector-corruption-check (1.2.0.post1) - Library for developers to extract data from Microsoft Excel™
spreadsheet files
xlutils (2.0.0) - Utilities for working with Excel files that require both xlrd and
xlwt
xleditor (1.0.2) - Easy to open xls/xlsx file and edit it (merge xlrd and xlutils)
xlsimport (0.1) - Builton top of xlrd, package provides set of cell parsers that make
your import easier.

4.9 wheel 子命令

4.9.1 wheel 子命令选项

315cd0b738fbd732bed60c6dda3ca853.png

4.9.2 包索引选项

fb8910d13ea9bcc522efaebfe571b6e2.png

4.9.3 使用样例

PS C:\Users\xufive> pip wheel xlrd
Collecting xlrd
Using cached https://files.pythonhosted.org/packages/b0/16
/63576a1a001752e34bf8ea62e367997530dc553b689356b9879339cf45a4/xlrd-1.2.0-py2.py3-none-any.whl
Saved d:\youthgit\youth_packages\ftp_client\xlrd-1.2.0-py2.py3-none-any.whl
Skipping xlrd, due to already being wheel.

4.10 hash 子命令

4.10.1 hash 子命令选项

458fdc055b0e78063261b8aead1c7c39.png

4.10.2 使用样例

PS C:\Users\xufive> python -m pip hash d:/linhl/t.txt
d:/linhl/t.txt:
--hash=sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

4.11 completion 子命令

4.11.1 completion 子命令选项

5e3c5cf51f49450b442fb83497760a0a.png

ae90dbd736b3bccfffb06fd2acd981ab.png
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值