Qingquan-Li / blog

My Blog
https://Qingquan-Li.github.io/blog/
132 stars 16 forks source link

pip安装及使用 #87

Open Qingquan-Li opened 6 years ago

Qingquan-Li commented 6 years ago

pip 是一个以 Python 计算机程序语言写成的软件包管理系统,它可以安装和管理软件包,另外不少的软件包也可以在 “Python 软件包索引”(英语: Python Package Index ,简称 PyPI )中找到。

大多数较新的 Python 版本(从 Python 3.4 开始)都自带 pip ,因此首先可检查系统是否已经安装了 pip (在命令行输入 pip )。在 Python 3 中, pip 有时被称为 pip3 ,及在命令行输入需要使用 pip3


安装pip(macOS)

pip 是 Python 的一个包管理工具 Python Package Index ,用这个工具你可以轻松下载 Python 的三方包。

  1. 获取 pip 的安装脚本

    $ wget https://bootstrap.pypa.io/get-pip.py

    若你没有安装 wget ,可以直接用浏览器访问上面的链接,把内容复制出来新建并保存在 get-pip.py 这个文件里面。

  2. 安装 pip

    $ sudo python get-pip.py

    安装完成之后可以在命令行直接运行 $ pip 就可以检测是否安装成功。

  3. 更新 pip

    $ pip install --upgrade pip


    pip 版本过低,可能会导致安装库失败。如 pip install beautifulsoup4 可能会报错:Could not fetch URL https://pypi.python.org/simple/beautifulsoup4/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:645) - skipping此时需要升级 pip 。 2018 年 4 月, Python.org 网站停止支持 TLS 版本 1.0 和 1.1 ,导致低于 10.13 的 macOS 系统版本不能使用低于 9.0.3 的 pip 版本,使用 pip 更新或安装库时出现 SSL 错误具体看这里 因为 pip 连接会出现 SSL 错误,所以不能使用以上方法更新 pip 。 解决方案,可使用以下方法更新 pip :

    $ curl https://bootstrap.pypa.io/get-pip.py | python3

    注:这里的 python3 是 Python 3.5 ,如你使用的是 Python 2 ,则可以用 python 替换 python3 。 以上命令将卸载旧版的 pip ,重新安装最新版的 pip ,如这里卸载了 pip 8.1.1 ( Python 3.5 自带版本),安装了 pip 10.0.1 。 以上解决方案比使用以下命令信任站点更加便捷和安全: pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org <package_name>

  4. 查看 pip 版本号

    $ pip --version
    pip 9.0.3 from /Users/fatli/Documents/myproject/myvenv/lib/python3.5/site-packages (python 3.5)
    $ pip3.5 --version
    pip 8.1.1 from /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages (python 3.5)
    $ pip3.6 --version
    pip 9.0.1 from /usr/local/lib/python3.6/site-packages (python 3.6)
  5. 卸载 pip

    $ python -m pip uninstall pip setuptools


使用 pip

安装/卸载 Python 第三方包

$ pip install package-name

也可以在自己的系统环境中执行 pip freeze > requirements.txt 命令,保存当前开发环境,然后在虚拟环境/服务器端中执行 pip install -r requirements.txt 命令,一次安装全部系统环境已安装的包。

$ pip uninstall package-name


查看 pip 安装的 Python 包

$ pip freeze

或者

$ pip list


使用 pip --help 获取更多用法

$ pip --help

Usage:   
  pip <command> [options]

Commands:
  install                     安装包.
  uninstall                   卸载包.
  freeze                      按着一定格式输出已安装包列表
  list                        列出已安装包.
  show                        显示包详细信息.
  search                      搜索包,类似yum里的search.
  wheel                       Build wheels from your requirements.
  zip                         不推荐. Zip individual packages.
  unzip                       不推荐. Unzip individual packages.
  bundle                      不推荐. Create pybundles.
  help                        当前帮助.

General Options:
  -h, --help                  显示帮助.
  -v, --verbose               更多的输出,最多可以使用3次
  -V, --version               现实版本信息然后退出.
  -q, --quiet                 最少的输出.
  --log-file <path>           覆盖的方式记录verbose错误日志,默认文件:/root/.pip/pip.log
  --log <path>                不覆盖记录verbose输出的日志.
  --proxy <proxy>             Specify a proxy in the form [user:passwd@]proxy.server:port.
  --timeout <sec>             连接超时时间 (默认15秒).
  --exists-action <action>    Default action when a path already exists: (s)witch, (i)gnore, (w)ipe, (b)ackup.
  --cert <path>               证书.




附:Ubuntu 16.04 操作pip

一、安装 pip :

Ubuntu 16.04 自带安装 Python 3.5.2 ,但是不自带 pip ,所以需要手动安装。

特别说明:执行 $ sudo apt-get install python3-venv 安装基于python3的虚拟环境,自带了 pip ,所以虚拟环境中不用安装 pip 了。

Ubuntu 16.04 自带安装 Python 3.5.2 ,所以使用此命令安装的 pip 版本为 pip 8.1.1 。

sudo apt install python3-pip

二、升级pip:

pip install --upgrade pip

三、删除手动安装的python3-pip :

参考:https://www.howtoinstall.co/en/ubuntu/xenial/python3-pip?action=remove

sudo apt-get remove --auto-remove python3-pip


在虚拟环境下操作pip

$ sudo apt-get install python3-venv # 此处安装基于python3.5.2的虚拟环境,自带了pip8.1.1所以不用执行sudo apt install python-pip安装pip了
$ sudo python3 -m venv myvenv
$ source myvenv/bin/activate
$ pip -V
pip 8.1.1 from /data/repositories/test.git/myvenv/lib/python3.5/site-packages (python 3.5)
$ deactivate
$ pip -V
The program 'pip' is currently not installed. You can install it by typing:
sudo apt install python-pip


(myvenv) $ pip install --upgrade pip
... ...
PermissionError: [Errno 13] Permission denied: '/data/repositories/test.git/myvenv/bin/pip'
(myvenv) $ sudo pip install --upgrade pip
[sudo] password for fatli: 
sudo: pip: command not found
(myvenv) $ sudo su
root # source myvenv/bin/activate
(myvenv) root # pip install --upgrade pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/d7/41/34dd96bd33958e52cb4da2f1bf0818e396514fd4f4725a79199564cd0c20/pip-19.0.2-py2.py3-none-any.whl (1.4MB)
    100% |████████████████████████████████| 1.4MB 38kB/s 
Installing collected packages: pip
  Found existing installation: pip 8.1.1
    Uninstalling pip-8.1.1:
      Successfully uninstalled pip-8.1.1
Successfully installed pip-19.0.2
(myvenv) # pip -V
pip 19.0.2 from /data/repositories/test.git/myvenv/lib/python3.5/site-packages/pip (python 3.5)


$ pip install -r requirements.txt # 权限拒绝。修改权限 `sudo chmod 777 directory` 依然无效。
... ...
Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/data/repositories/test.git/myvenv/lib/python3.5/site-packages/soupsieve-1.7.3.dist-info'
Consider using the `--user` option or check the permissions.
(myvenv) $ sudo su
root # source myvenv/bin/activate
(myvenv) root # pip install -r requirements.txt
... ...
Successfully installed ...