python——reuqests模块使用pip安装始终不成功
使用pip install xxx 来安装某一库。
使用 pip uninstall xxx 来卸载。
而pip 的也可以采用常见的两种安装方法
在centos系列下
使用sudo yum install python-pip
删除sudo yum remove python-pip
在ubuntu 系列下
使用 sudo apt-get install python-pip
删除 sudo apt-get autoremove python-pip
这两个系统都可以使用
https://pip.pypa.io/en/stable/installing/
提供的安装py脚本
下载后执行 sudo python get-pip.py
问题
我在删除requests这个第三方库时候,centos上直接执行了
pip uninstall requests 便删除掉了该库。
而同样的操作在ubuntu上却提示了
Not uninstalling at /usr/lib/python2.7/dist-packages, owned by OS
可以看到提示属于系统,无法删除。
很是疑惑。一个小小的库,怎么属于系统了呢?
原来这台ubuntu 的pip 采用的是apt-get install python-pip 方法安装的。
import requests
print requests.__file__
- 1
- 2
上面的方法可以看到该库的位置
/usr/lib/python2.7/dist-packages
而我印象中的库一般都是存放在site-packages 中。
查阅了一下
dist-packages 是 Debian特定惯例,这也存在于像是ubuntu上。 如果使用Debian软件管理器安装, 模块将被安装到 dist-packages:
/usr/lib/python2.7/dist-packagesdist-packages取代了site-packages。从Debian安装包安装的第三方的Python软件 被 安装到 dist-packages,不是 site-packages.这是为了减少,系统自带python 和 你手动安装的python 之间的冲突。
这就是说,如果你手动安装python,它会直接使用目录site-packages。这允许你让两个安装隔离开来,特别是因为Debian 和 Ubuntu 应用 python的系统版本 到 许多的系统实体。
可见是ubuntu的这个特性造成的问题。
于是到该目录删除掉requests 包。
apt-get autoremove python-pip
采用脚本的方法安装。
之后执行发现提示 No such file or directory
which 一下,发现pip 和python 不在一个目录下
执行 ln -s /usr/local/bin/pip /usr/lib/pip
建立软连接,然后使用该pip 安装的requests就进入正常的site-packages 文件夹中。
也可以使用pip uninstall 删除了。
后续
在交互界面import requests 后,提示
/usr/local/lib/python2.7/dist-packages/requests/__init__.py:80: RequestsDependencyWarning: urllib3 (1.21.1) or chardet (2.0.1) doesn’t match a supported version!
RequestsDependencyWarning)
可见requests库依赖的包有 urllib3以及 chardet
版本不匹配是因为,我们使用apt-get install requests 时也自动安装了这俩个依赖库,而我们删除时却没有删掉他们。
为此,执行
apt-get autoremove urllib3
apt-get autoremove chardet
这样就删除掉存在/usr/lib/python2.7/dist-packages下面的包。
在执行pip install requests --upgrade.
此次的依赖包就会安装到 /usr/local/lib/pytrhon2.7/dist-packages 下面。
再次导入就不会有问题,成功安装提示如下:
drwxr-sr-x 2 root staff 4096 8月 28 14:23 requests
drwxr-sr-x 2 root staff 4096 8月 28 14:23 requests-2.19.1.dist-info
drwxr-sr-x 5 root staff 4096 8月 28 14:23 urllib3
drwxr-sr-x 2 root staff 4096 8月 28 14:23 urllib3-1.23.dist-info
python——reuqests模块使用pip安装始终不成功的更多相关文章
- 命令行窗口中使用pip安装第三方库成功之后,在pycharm中仍不能使用
在学习廖老师的Python教程的时候,遇到命令行窗口中使用pip安装第三方库成功之后,在pycharm中仍不能使用的情况, 这种情况可能是由于在本地安装了多个Python版本的缘故(只是可能的情况之一 ...
- Linux 下 安装Python第三方模块工具箱pip,以及用pip安装的方法
下载文件 wget https://bootstrap.pypa.io/get-pip.py --no-check-certificate 执行安装 python get-pip.py 可以做一个软连 ...
- Python各种模块下载及安装配置
方式1 在Python官网https://www.python.org/或者是github搜索进行下载 ,解压缩之后通过命令提示符进入已经解压缩文件夹根目录,输入下面的命令: python setup ...
- 【Python使用】使用pip安装卸载Python包(含离线安装Python包)未完成???
pip 是 Python 包管理工具,该工具提供了对Python包的查找.下载.安装.卸载的功能.Python 2.7.9 + 或 Python 3.4+ 以上版本都自带 pip 工具. pip使用( ...
- python安装pip和使用pip安装Python库类比如pip安装beautifulsoup4
初学Python时,看到很多不懂得东西,比如 pip, 是python 包管理工具,pip是easy_install的取代. Distribute是对标准库disutils模块的增强,我们知道disu ...
- 详解python包管理器pip安装
pip对于使用python的朋友并不陌生,当你想安装python模块的时候一定会首先想到它.pip 是一个安装和管理 Python 包的工具 , 是 easy_install 的一个替换品. 今天来说 ...
- Python中怎样用pip安装外部主机文件
在python中安装非自带python模块.有三种方式: easy_install pip 下载压缩包(.zip, .tar, .tar.gz)后解压, 进入解压缩的文件夹后运行python setu ...
- python包管理之Pip安装及使用-1
Python有两个著名的包管理工具easy_install.py和pip.在Python2.7的安装包中,easy_install.py是默认安装的,而pip需要我们手动安装. pip可以运行在Uni ...
- python包管理之Pip安装及使用
Python有两个著名的包管理工具easy_install.py和pip.在Python2.7的安装包中,easy_install.py是默认安装的,而pip需要我们手动安装. pip可以运行在Uni ...
随机推荐
- 撩课-Web大前端每天5道面试题-Day11
1. 如何手写一个JQ插件? 方式一: $.extend(src) 该方法就是将src合并到JQ的全局对象中去: $.extend({ log: ()=>{alert('撩课itLike');} ...
- Web Service与Apache CXF 框架
一.WebService简介 为了支持跨网络的机器间相互操作交互而设计,用于开发分布式的互操作的应用程序组件. Web Service服务通常被定义为一组模块化的API,它们可以通过网络进行调用,来执 ...
- C#3.0匿名类和Lanmda表达式
1.初始化器:className variableName = new className(property1=value1…); 2.var可以声明一个没有类型的变量,根据赋值的不同改变数据类型 3 ...
- JS获取第二个横杠后面的内容
假设数据为: let str = "zheng-shize-zsz"; 获取第一个横杠的位置: str.indexOf("-") 1. 那获取第二个横杠怎么写呢 ...
- FineReport如何手动推送APP消息
在报表填报成功后,发送消息至APP会提示数据已更新.再次期间用户需要有查看该模板的权限,如果没有的话,则无法接受到提示信息.那么在FineReport移动端中,如何手动推送APP消息呢? 具体用法 在 ...
- 线性表的顺序存储结构之顺序表类的实现_Java
在上一篇博文——线性表接口的实现_Java中,我们实现了线性表的接口,今天让我们来实现线性表的顺序存储结构——顺序表类. 首先让我们来看下顺序表的定义: 线性表的顺序存储是用一组连续的内存单元依次存放 ...
- 使用HVTableView动态展开tableView中的cell
使用HVTableView动态展开tableView中的cell 效果: 源码: HVTableView.h 与 HVTableView.m // // HVTableView.h // HRVTab ...
- 安装SCOM Gateway Server
安装SCOM Gateway Server 1.为SCOM Gateway Server申请证书,导入CA证书链2.将安装介质Support Tools下AMD64下的 Microsoft.Enter ...
- Windows下Git服务端和客户端的搭建
1.服务器端的搭建 本人使用的是一款带源码的工具:bonobogitserver,对应的网址为:https://bonobogitserver.com/ 具体操作方式如下: 1.打开网址,下载最新版本 ...
- ZT Android的引用计数(强弱指针)技术及一些问题
Android的引用计数(强弱指针)技术及一些问题 分类: Android 2013-06-07 18:25 844人阅读 评论(4) 收藏 举报 目录(?)[+] Android C++框架层的引用 ...