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 ...
随机推荐
- 撩课-Python-每天5道面试题-第4天
一. for循环和while循环中的else代表什么意思? 当for循环和while循环顺利的遍历完成时, 就会执行else分支 如果循环过程中, 碰到continue, 只要没有打断循环, 就会继续 ...
- Java实现进程调度算法(一) FCFS(先来先服务)
一.概述 因为这次os作业对用户在控制台的输入输出有要求,所以我花了挺多的代码来完善控制台的显示. 也因为我这次要实现多个类似算法,所以将一些共性单独提取出来作为一个类. 如果只想要和算法有关的核心代 ...
- groovy函数、字符串、循环
三重单引号字符串 '''a triple single quoted string''' 三重单引号字符串是普通的java.lang.String 三重单引号字符串是多行的.您可以跨越行边界跨越字符串 ...
- C#解析PDF
C#解析PDF的方式有很多,比较好用的有ITestSharp和PdfBox. PDF内容页如果是图片类型,例如扫描件,则需要进行OCR(光学字符识别). 文本内容的PDF文档,解析的过程中,我目前仅发 ...
- 深入理解Java虚拟机---类加载机制(简略版)
类加载机制 谈起类加载机制,在这里说个题外话,当初本人在学了两三个月的Java后,只了解了一些皮毛知识,就屁颠屁颠得去附近学校的招聘会去蹭蹭面试经验,和HR聊了一会后开始了技术面试,前抛出了两个简单的 ...
- web 开发人员必须学习的 3 门语言
web 开发人员必须学习的 3 门语言:html css js HTML 定义了网页的内容 CSS 描述了网页的布局 JavaScript 网页的行为
- 可持久化trie(BZOJ5338: [TJOI2018]xor)
题面 BZOJ Sol 显然是要维护一个区域的 \(trie\) 树,然后贪心 区间 \(trie\) 树??? 可持久化 \(trie\) 树??? 直接参考主席树表示出区间的方法建立 \(trie ...
- TopCoder14580: EllysRPS
题意 \(yyb\)要去与\(m\)\((m\le100)\)个人玩游戏 由于\(yyb\)忙着切大火题,他没有太多的精力浪费在游戏上 所以仁慈的\(yyb\)决定放\(m\)个人一条生路,不吊打他们 ...
- 关于this的全面解析(call,apply,new)
我们在写代码的时候,时常会被this弄的傻傻分不清楚,看源码的时候也经常被call啊apply啊弄的头皮发麻.this到底是什么?本文主要根据书上和实际应用做了一些归纳.一般情况下this有4种绑定规 ...
- Android N(API level 24.)废弃了Html.fromHtml(String)
从API level 24开始,fromHtml(String)被废弃,使用fromHtml(String source, int flags) 代替 flags: FROM_HTML_MODE_CO ...