pip的使用

pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。
  pip --version    #python2.x 版本命令,显示版本和路径
  pip3 --version    #python3.x 版本命令,显示版本和路径

1.安装pip

官网安装方式:
  curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 或者 curl https://bootstrap.pypa.io/2.7/get-pip.py --output get-pip.py
  python get-pip.py
  用哪个版本的 Python 运行安装脚本,pip 就被关联到哪个版本。 python3 get-pip.py 对应的是pip3
linux  apt-get方式安装:
   sudo apt-get install python-pip 
升级pip:
  pip install -U pip 或者 sudo pip install --upgrade pip
 
  Windows 平台升级
    python -m pip install -U pip # python2.x
    python -m pip3 install -U pip # python3.x
卸载pip:
  sudo apt-get remove python-pip(待验证)
pip版本降级:
  python -m pip install pip==版本(如:9.0.3)
 
如果 Python2 和 Python3 同时有 pip,则使用方法如下:(待验证)
  Python2: python2 -m pip install XXX
  Python3: python3 -m pip install XXX
 
解决pip安装时出现报错TypeError unsupported operand type(s) for -= 'Retry' and 'int'
2.参考https://zhang0peter.com/2018/11/02/pip/ 使用 python -m pip install --upgrade pip更新pip
3.参考https://www.cnblogs.com/YenKoc/p/13394867.html 创建~/.pip/pip.conf,更新pip 下载源

2.pip常用命令

pip 是一种安装与管理python 包工具,常用命令如下:
  1. 安装包: pip install  somepackage
  2. 卸载包: pip uninstall somepackage
  3. 升级包: pip install --upgrade somepackage  /-U
  4. 查看某包信息: pip show somepackage    查看指定包的详细信息: pip show --files somepackage 或者  pip show -f somepackage
  5. 查看所有的已安装包: pip list
  6. 搜索包: pip search <搜索关键字>
  7. 检查那些包需要更新 pip  list --outdated 或者 pip list -o
  8. 导出已安装的包及其版本: pip freeze >requirements.txt,保存的文件可以直接用于安装或卸载,比如:
    pip install -r requirements.txt
    pip uninstall -r requirements.txt

3.pip install常用参数

通过pip install -h 可以查看pip install可以使用的所有参数
1)pip install 安装指定版本的包
要用 pip 安装指定版本的 Python 包,只需通过 == 操作符 指定。
pip install robotframework == 2.8.7  #指定版本
pip install SomePackage # 最新版本
pip install SomePackage==1.0.4 # 指定版本
pip install 'SomePackage>=1.0.4' #最小版本
2)pip install  -i  国内镜像文件
国内镜像:
  • http://pypi.douban.com/simple/ 豆瓣
  • http://mirrors.aliyun.com/pypi/simple/ 阿里
  • http://pypi.hustunique.com/simple/ 华中理工大学
  • http://pypi.sdutlinux.org/simple/ 山东理工大学
  • http://pypi.mirrors.ustc.edu.cn/simple/ 中国科学技术大学
  • https://pypi.tuna.tsinghua.edu.cn/simple 清华
临时使用,添加“-i”或“--index”参数
  pip install -i http://pypi.douban.com/simple/  flask
pip 装包的时候可以用清华的源,速度较快 -i https://pypi.tuna.tsinghua.edu.cn/simple
3)pip安装时设置代理
sudo pip --proxy=http://xxx.xxx.xxx.xx:xxxx install 包名
4)-I,--target,--default-timeout的使用
sudo pip --default-timeout=100 install --ignore-installed --target=xxx/ robotframework==3.0.4
  • -I, --ignore-installed忽略已安装的软件包,重新安装
  • --target 将包安装到参数指定的目录
  • --default-timeout=100 修改默认的下载超时时间,避免因网络太慢导致下载超时的问题
针对因网络太慢导致下载超时的问题,除了可以设置默认时间外,还可以通过-i参数指定包源镜像,比如pip install -i https://pypi.tuna.tsinghua.edu.cn/simple
5)pip install -U参数
-U即--upgrade,意思是如果已安装就升级到最新版。
-U 是升级 原来已经安装的包,如果有新版本,不带U不会装新版,带上才会更新到最新版本。
6)使用pip安装python包
 不同python版本前面加python版本号 -m 。如:python3 -m pip install Django==1.10.7

4.pip install时遇到问题总结

1)sudo的作用
sudo pip install packagename  代表进行全局安装,安装后全局可用。如果是信任的安装包可用使用该命令进行安装。
pip install --user packagename  代表仅该用户的安装,安装后仅该用户可用。处于安全考虑,尽量使用该命令进行安装。
2)--user参数的作用
问题:pip install matplotlib 报错
信息为:Could not install packages due to an EnvironmentError:
    [Errno 13] Permission denied:'/usr/local/lib/python2.7/dist-packages/pyparsing.pyc'
    Consider using the `--user` option or check the permissions.
解决办法: pip install --user  matplotlib
    利用 --user 参数,即pip install --user package_name会将Python 程序包安装到 $HOME/.local 路径下,其中包含三个字文件夹:bin,lib 和 share。
    然后修改 .bash_profile 文件使得 $HOME/.local/bin 目录下的程序加入到环境变量中,export PATH=$HOME/.local/bin:$PATH
3)Python安装pip包的时候权限出现问题
  使用sudo可以解决权限问题,但是使用sudo pip install 安装包时,经常会看到警告"The directory '/home/ubuser/.cache/pip/http' or its parent directory is not owned by the current user and caching wheels has been disabled..........,然后就是建议使用sudo -H
  这是为什么呢,原因是因为pip安装时有个本地缓存目录~/.cache/pip/http,如果使用sudo pip 安装包(环境变量中的用户是root,家目录是/home/ubuser),这个缓存目录(/home/ubuser/.cache/pip/http)或其上级目录不属于当前用户(root),所以就会有上述的警告!!
  sudo提供的选项 -H会将当前用户/指定用户的家目录(默认情况下为/root)设置为环境变量中的家目录,就解决了以上情况,eg: sudo -u admin -H是将/home/admin作为当前的家目录,sudo -H是将/root作为当前的家目录。
举栗说明:脚本中使用$HOME变量 
问题描述:某些同事原来写的脚本中包含如下内容。
    BIN_DIR=${HOME}/tools
    TAIR_BIN_DIR=${HOME}/tair_bin
    TAIR_SRC_DIR=${HOME}/tair_src 
  原来的使用习惯是:直接登录admin的shell运行这些脚本。
  改用个人帐号使用sudo -u admin example.sh运行之后,发现脚本中$HOME变量获取成个人帐号家目录。 
问题分析:sudo执行命令的时候,默认使用个人帐号的家目录赋值给$HOME变量。比如张三执行 sudo -u admin example.sh_得到的$HOME结果是 /home/zhangsan
     原因是sudo命令默认不会修改$HOME变量,如果希望改变sudo中$HOME变量,则需要增加-H参数: sudo -u admin -H example.sh 
举例如下:
  使用用户piaopiao登录到shell中,执行以下命令:
  [piaopiao@tair004013 ~]$ cat example.sh
    #!/bin/sh
    BIN_DIR=${HOME}/tools
    echo 'BIN_DIR='$BIN_DIR 
  [piaopiao@tair004013 ~]$ sudo -u admin ./example.sh
    BIN_DIR=/home/piaopiao/tools 
  [piaopiao@tair004013 ~]$ sudo -u admin -H ./example.sh
    BIN_DIR=/home/admin/tools 
解决方法: 虽然sudo -H这个参数能解决脚本的这个问题,但并不推荐大家使用sudo的-H参数,因为执行脚本的时候并不一定知道脚本里面的变量是如何定义或获取的。 希望还是从脚本的编写角度出发,对脚本作适当修改,减少对admin/root这样帐号环境变量的依赖。
4)pip install遇到编码问题
错误:UnicodeDecodeError: 'ascii' codec can't decode byte 0xd5 in position 34: ordinal not in range(128)  
  import sys  
  reload(sys)  
  sys.setdefaultencoding('gbk') 
注:sys.setdefaultencoding时为什么老是得不到提示的原因?
  早些版本的python是只要写这两句就可以了,而较高的python必须要reload(sys)一下。
 

apt-get的使用

软件安装路径:系统安装软件一般在/usr/share,可执行文件在/usr/bin,配置文件在/etc,lib文件 在/usr/lib

1.基本概念

  (1) apt-get 是一条linux命令,适用于deb包管理式的操作系统;DEB是Debian软件包格式的文件扩展名,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统.
  (2) apt-get 是 debian、ubuntu 发行版的包管理工具,与红帽中的yum工具非常类似

2.基本用法

  1. 安装包apt-get install packagename
  2. 更新软件包的列表apt-get update,更新 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的地址,获得最近的软件包的列表,列表中包含一些包的信息,比如这个包是否更新过.
  3. 卸载包apt-get remove packagename: 卸载一个已安装的软件包(保留配置文档);apt-get remove --purge packagename: 卸载一个已安装的软件包(删除配置文档)
  4. 彻底删除包apt-get autoremove packagename: 删除包及其依赖的软件包;apt-get autoremove --purge packagname:删除包及其依赖的软件包+配置文件,比左面的要删除的彻底一点
  5. 显示软件包信息apt-cache show php-mysql或者使用dpkg -s php-mysql
  6. 显示该文档属于哪个已安装软件包dpkg -S file
  7. 列出所有已安装的软件包dpkg -l
  8. 获取软件包包含的文件dpkg -L packagname,这个方法可以列出所有安装后留在系统里的文件
  9. 升级包/系统apt-get upgradeapt-get dist-upgrade(将系统升级到新版本) ,upgrade根据软件包列表里的信息,升级已安装的所有软件包,而 dist-upgrade 是将系统升级到新版本。一般在运行 upgrade 或 dist-upgrade 之前要运行 update。
  10. 强制卸载包dpkg --force-all --purge packagename: 有些软件很难卸载,而且还阻止了别的软件的应用,就能够用该命令.
  11. 搜索字符串apt-cache search string : 在软件包列表中搜索字符串。
  12. 清除已卸载软件包的.deb文档apt-get autoclean 定期运行这个命令来清除那些已卸载的软件包的.deb文档。
  13. 删除已安装软件包的.deb文档apt-get clean
  14. 指定安装版本apt-get install package=version

其他知识:

1. 使用python安装tar.gz包
  # tar -zxvf Flask-WTF-0.10.0.tar.gz
  # cd Flask-WTF-0.10.0
  # python setup.py build
  # python setup.py install
 
2.安装缺失库
sudo apt-get install apt-file
apt-file update
apt-file search libXX.so
apt-file 将列出所有包含libXX.so文件的apt包,
选择相应的包用apt-get安装即可,通常选择带dev的包安装。
 
问题:缺少libSM.so.6
解决方法:
  apt-file search libSM
  
  通常选择带dev的包安装,安装方式为apt-get install xxx-dev
 
 
 
 

pip与apt-get的使用的更多相关文章

  1. Linux配置python和pip环境

    CentOS: 1.首先安装EPEL扩展源: yum install -y epel-release 2.系统自带python2,所以只需安装python3 yum install -y python ...

  2. 使用pip安装Scrapy出错

    目录 安装Scrapy出错 安装 使用pip安装(Ubuntu) 错误信息 解决方法 安装Scrapy出错 安装 使用pip安装(Ubuntu) # 安装pip sudo apt install py ...

  3. python2和python3同时存在如何安装和使用pip

    linux下 如果没有pip则需要安装pip python2安装pip sudo apt install python-pip1如果是python3,则如下: sudo apt install pyt ...

  4. [译]在Ubuntu 18.04上安装pip

    三步走: 1.更新源 sudo apt update 2.安装pip sudo apt install python3-pip 3.查看pip版本 pip3 --version pip 9.0.1 f ...

  5. Linux下的几个好用的命令与参数

    将所有文件的编码,转换为UTF-8 find . ! -type d -exec enca -L zh_CN -x UTF-8 {} \; 将指定目录下所有文件权限设定为644 find . ! -t ...

  6. TensorFlow安装-ubuntu

    windows下某些tensorflow例子跑不成功,比如https://www.tensorflow.org/tutorials/wide 中的例子报下面的错误:' 'NoneType' objec ...

  7. Azure IoT Edge on Raspberry Pi 3 with Raspbian

    在<Azure IoT Edge on Windows 10 IoT Core>一文中,我们以运行Windows 10 IoT Core的MinnowBoard MAX为例,详细讲述了Wi ...

  8. TensorRT学习总结

    TensorRT是什么 建议先看看这篇https://zhuanlan.zhihu.com/p/35657027 深度学习 训练 部署 平常自学深度学习的时候关注的更多是训练的部分,即得到一个模型.而 ...

  9. 如何在本地编译Fabric Code

    之前的博客都是拿官方现成的Docker镜像来用,但是并没有自己动手做镜像,也没有说到如何去开发和测试Fabric的代码.这一篇博客就从入门的角度讲解如何编译.测试和开发Fabric. 一.环境准备 要 ...

  10. ubuntu16.04 caffe 安装

    所需环境 opencv3.x + cuda9.0 安装 caffe首先在你要安装的路径下 clone : git clone https://github.com/BVLC/caffe.git 进入 ...

随机推荐

  1. SpringBoot 整合 mybatis 开启驼峰命名规则自动转换

    引言 在使用 MyBatis 进行实际项目开发时,如果数据库表字段名与Java 实体类属性名不一致,映射时则需要编写表字段列表与 Java 实体类属性的映射关系,即resultMap,如下: < ...

  2. Linux 系统日志和系统信息常用命令介绍

    日志文件 日 志 文 件 说 明 /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 /var/log/secure 与安全相关的日志信息 / ...

  3. element-ui 的el-select如何不显示value,显示value对应的label值

    有时根据需要,我们根据v-model的值绑定option, 想要的效果: 实际的效果: 原因: value的格式存在问题,数据库读取到的数据不一定为number类型,需要手动转换. 第一种 <t ...

  4. Apache Jena Fuseki使用

    下载Apache Jena Fuseki 先从apache官网下载fuseki压缩包.然后解压到目标文件夹. apache官网:http://jena.apache.org/download/ 这里我 ...

  5. 血缘关系分析工具SQLFLOW--实践指南

    SQLFlow 是用于追溯数据血缘关系的工具,它自诞生以来以帮助成千上万的工程师即用户解决了困扰许久的数据血缘梳理工作. 数据库中视图(View)的数据来自表(Table)或其他视图,视图中字段(Co ...

  6. Linux(CentOS7)下二进制安装MySQL5.7.26

    记录一下自己在 CentOS7 下二进制安装 MySQL5.7.26 的过程,之前使用 Linux(CentOS7)下rpm安装MySQL8.0.16 之后发现 rpm 方式安装不利于维护,也不利于单 ...

  7. Vue之前后端交互

    Vue之前后端交互 一.前后端交互模式 接口调用方式 原生ajax 基于jQuery的ajax fetch axios 异步 JavaScript的执行环境是「单线程」 所谓单线程,是指JS引擎中负责 ...

  8. 从单一图像中提取文档图像:ICCV2019论文解读

    从单一图像中提取文档图像:ICCV2019论文解读 DewarpNet: Single-Image Document Unwarping With Stacked 3D and 2D Regressi ...

  9. Camera Calibration 相机标定

    Camera Calibration 相机标定 一.相机标定方法 在opencv中提供了一组函数用于实现相机的标定,标定返回的值包括:相机内参矩阵(fx fy xc yc).相机外参矩阵(R t)以及 ...

  10. Torchvision模型微调

    Torchvision模型微调 本文将深入探讨如何对 torchvision 模型进行微调和特征提取,所有这些模型都已经预先在1000类的magenet数据集上训练完成.将深入介绍如何使用几个现代的C ...