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 ...
随机推荐
- Bash拾遗:变量
使用引号包裹变量 在<高级Bash脚本编程指南>中的4.1节中有这么个例子: hello="A B C D" echo $hello # A B C D echo &q ...
- Class.forName("com.mysql.jdbc.Driver")找不到类
解决方法: 如果是java项目,只需要引入mysql-connector-java-8.0.13.jar就可以运行java项目. 建的如果是web工程,需要把mysql-connector-java- ...
- JS判断浏览器版本
CSS html,body{ height: 100%; } body{ margin: 0 } div{ padding-left: 50px; } .span{ padding: 5px 15px ...
- Java学习笔记(5)----使用正则表达式解决Google Code Jam Qualification2009赛题 Alien Language
原题地址:https://code.google.com/codejam/contest/90101/dashboard#s=p0 题目描述: Problem After years of study ...
- 微信小程序-02-项目文件之间配合和调用关系
微信小程序-02-项目文件之间配合和调用关系 我就不说那么多了,我是从官方文档拷贝的,然后加上一些自己的笔记,不喜勿喷 官方文档:https://developers.weixin.qq.com/mi ...
- spring+quarts常见问题
javax/transaction/UserTransactionCaused by: java.lang.NoClassDefFoundError: javax/transaction/UserTr ...
- c# 获取程序目录
取得控制台应用程序的根目录方法1:Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径2:AppDomain.CurrentDomain.BaseDirect ...
- CentOS7中永久保存systemd日志
将systemd的日志写入磁盘: 1.在/var/log/目录下创建日志存放目录,并加入systemd-journal的权限: ~]#mkdir /var/log/journal ~]#chown r ...
- [翻译] BFKit
BFKit BFKit is a collection of useful classes to develop Apps faster. BFKit是一个有用的工具集合,帮助你快速开发. Insta ...
- 海量数据处理面试题(1) 找出两文件种包含的相同的url
问题:给定a.b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a.b文件共同的url? 分析:50亿个url,每个url64字节,就是320G,显然是无法一次读入内存 ...