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. 如何做好FAE工作及FAE职位发展————资深FAE总结推荐

    http://bbs.elecfans.com/jishu_932585_1_1.html 曾经认识一位做电源研发的工程师,转行在一家代理商做FAE,做了一年半以后,就提出了离职请求,他老板问他是什么 ...

  2. 在Linux服务器,搭建K8s服务【脚本篇】

    前言 好久没有写博客了,本文主要是对网上文章的总结篇,主要是将安装和运行代码做了一次真机实验,亲测可用.文章内包含的脚本和代码,多来自于网络,也有我自己的调整和配置,文章末尾对参考的文献做了列举,方便 ...

  3. redis 基本操作命令

    redis 基本操作 String 操作字符串 1 SET key value 设置指定 key 的值 ​ 2 GET key 获取指定 key 的值. ​ 3 GETRANGE key start ...

  4. Day_04_xml解析

    xml解析:操作xml文档,将文档中的数据读取到内存中 操作xml文档的方式有两种: 1.解析(读取):将文档中的数据读取到内存中 2.写入:将内存中的数据保存到xml文档中(后期用的并不多) 解析x ...

  5. Python-名片管理器

    # 需要完成的基本功能: # 添加名片 # 删除名片 # 修改名片 # 查询名片 # 退出系统 # 程序运行后,除非选择退出系统,否则重复执行功能 list_info = [] # 创建一个空列表 # ...

  6. Python+Selenium学习笔记2 - 字符串

    跟着网络课程学了几个小程序. 1.判断a字符串是否为b字符串的子串 1 # coding = utf-8 2 3 # 判断str_a字符串是否为str_b字符串的子串 4 5 str_a = &quo ...

  7. SQL Server将同一列多条数据合并成一行

    Sql server中,将同一字段多条数据用字符拼接为一个字符串方式. 原数据查询展示: 使用 STUFF 函数,将结果列拼接成一行.结果如下: STUFF: 1.作用 stuff(param1, s ...

  8. 快速人体姿态估计:CVPR2019论文阅读

    快速人体姿态估计:CVPR2019论文阅读 Fast Human Pose Estimation 论文链接: http://openaccess.thecvf.com/content_CVPR_201 ...

  9. ISP_DPC坏点矫正

    ISP_DPC坏点矫正 1. 坏点介绍 图像坏点(Bad pixel) : 图像传感器上光线采集点(像素点)所形成的阵列存在工艺上的缺陷,或光信号进行转化为电信号的过程中出现错误,从而会造成图像上像素 ...

  10. CUDA 8的混合精度编程

    CUDA 8的混合精度编程 Volta和Turing GPU包含 Tensor Cores,可加速某些类型的FP16矩阵数学运算.这样可以在流行的AI框架内更快,更轻松地进行混合精度计算.要使用Ten ...