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 ...
随机推荐
- 【SSH网上商城项目实战30】项目总结
转自:https://blog.csdn.net/eson_15/article/details/51479994 0. 写在前面 项目基本完成了,加上这个总结,与这个项目相关的博客也写了30篇了 ...
- 设计模式之状态模式IFORNOIF(二十二)
今天大风大雨, 但心情还行, 继续撸DOTA 状态模式(state pattern)定义 当一个对象的内在状态改变时允许改变其行为, 这个对象看起来像是改变了其类 这在我们开发的业务中太常见了, 角色 ...
- DOM3 textInput事件
DOM3中引入了文本事件,其中之一 textInput . 当用户再可编辑区域输入字符时触发该事件. 与keypress不同的是,该事件只会在用户输入可视字符时触发,而keypres事件则只要按下键即 ...
- js array copy method
//浅拷贝: let arr=[1,2,3,4] let arr2=arr arr[3]=0 console.log(arr,arr2) //output: (4) [1, 2, 3, 0] (4) ...
- bootstrap学习笔记细化(按钮)
button:btn 圆角灰色按钮 button:btn btn-default 圆角灰色边框按钮 button:btn btn-success 绿色 button:btn btn-primary 蓝 ...
- Install Python on Mac
1. 从官网下载最新版Python 3.X 后安装:由于Mac OS X EI Capitan中默认已经集成了 Python 2.7,因此需要在Terminal中输入 Python3 来检测是否安装成 ...
- Flutter知识点:数据存储之sqflite
sqflite是一款轻量级的关系型数据库,类似SQLite. 在Flutter平台我们使用sqflite库来同时支持Android 和iOS. 使用介绍 1.首选需要在pubspec.yaml 导入库 ...
- Array inversion case
package basic.java; import java.util.Scanner; /* * 需求: * (1)键盘录入5个int类型的数据存储数组arr中 * (2)定义方法将arr数组中的 ...
- python装饰器 高阶函数 函数闭包
1.装饰器: 本质是函数,功能是为其他函数添加附加功能 原则:1.不修改被装饰函数的源代码 2.不修改被修饰函数的调用方式 装饰器=高阶函数+函数嵌套+闭包 #装饰器格式框架def wrap(func ...
- (Stanford CS224d) Deep Learning and NLP课程笔记(一):Deep NLP
Stanford大学在2015年开设了一门Deep Learning for Natural Language Processing的课程,广受好评.并在2016年春季再次开课.我将开始这门课程的学习 ...