Python安装第三方库及常见问题处理方法汇总


Posted in Python onSeptember 13, 2016

源码安装

Python第三方库几乎都可以在github或者 pypi上找到源码。源码包格式大概有zip 、 tar.zip、 tar.bz2。解压这些包,进入解压好的文件夹,通常会有一个setup.py的文件。打开命令行,进入该文件夹。运行以下命令,就能把这个第三库安装到系统里:

python setup.py install

或者借助pip,则不需要解压:pip install package.zip

包管理器安装

现在很多编程语言,都带有包管理器,例如 Ruby 的 gem,nodejs的npm。

在Python中,安装第三方模块,是通过setuptools这个工具完成的。Python有两个封装了setuptools的包管理工具:easy_install和pip。目前官方推荐使用pip。

用easy_install和pip来安装第三方库很方便 它们的原理其实就是从Python的官方源pypi.python.org/pypi 下载到本地,然后解包安装。

基本操作命令如下:

# 安装package
pip install packagename
 
# 卸载package
pip uninstall packagename
 
# 查看所安装的package
pip list
 
# 将项目依赖的库重定向输出到文件,cd到项目根目录
pip projectname > requirements.txt
 
# 他人安装项目的依赖库
pip install -r requirements.txt
# pip常用命令可通过在命令行输入pip -h查看
# pip command -h可查看该命令的使用方法
 
Commands:
 install           Install packages.
 download          Download packages.
 uninstall          Uninstall packages.
 freeze           Output installed packages in requirements format.
 list            List installed packages.
 show            Show information about installed packages.
 search           Search PyPI for packages.
 wheel            Build wheels from your requirements.
 hash            Compute hashes of package archives.
 completion         A helper command used for command completion
 help            Show help for commands.

常见问题

官方的pypi不稳定,很慢甚至访问不了

解决方法1:

采用源码安装方式,在github或其他库下载,用python setup.py install方式安装,详见上文【源码安装】

解决方法2:

手动指定源,在pip后面跟-i,命令如下:

pip install packagename -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

pipy国内镜像目前有:

豆瓣 http://pypi.douban.com/simple/
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
华中理工大学 http://pypi.hustunique.com/
山东理工大学 http://pypi.sdutlinux.org/

某些包在这个电脑能安装,在另一电脑有安装不了了

参看setuptools、pip版本是否一致,升级到最新版本

pip install setuptools -U 
pip install pip -U

安装某些包时出现错误”error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat).”

原因大概是 windows上缺少一些C编译器。

解决方法1: 安装VC或VS,该方法有时奏效,有时不奏效。

解决方法2: 更简单的解决方法:下载whl格式的package,再用pip安装。 以numpy包为例:

whl格式的下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/

# 输入whl文件所在的完整路径
pip install D:\python\numpy-1.9.2+mkl-cp33-none-win_amd64.whl
Python 相关文章推荐
Python实现的简单发送邮件脚本分享
Nov 07 Python
Python批量创建迅雷任务及创建多个文件
Feb 13 Python
Python解析excel文件存入sqlite数据库的方法
Nov 15 Python
解决sublime+python3无法输出中文的问题
Dec 12 Python
在PyCharm中批量查找及替换的方法
Jan 20 Python
浅谈PySpark SQL 相关知识介绍
Jun 14 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
Jun 27 Python
python plt可视化——打印特殊符号和制作图例代码
Apr 17 Python
keras中的backend.clip用法
May 22 Python
python 基于selectors库实现文件上传与下载
Dec 31 Python
Pytorch1.5.1版本安装的方法步骤
Dec 31 Python
Python使用BeautifulSoup4修改网页内容
May 20 Python
Python中操作mysql的pymysql模块详解
Sep 13 #Python
python常用函数详解
Sep 13 #Python
python如何查看系统网络流量的信息
Sep 12 #Python
Python爬取三国演义的实现方法
Sep 12 #Python
python 读写、创建 文件的方法(必看)
Sep 12 #Python
Python读写Json涉及到中文的处理方法
Sep 12 #Python
详细介绍Python的鸭子类型
Sep 12 #Python
You might like
PHP中strtotime函数使用方法分享
2012/01/10 PHP
php判断一个数组是否为有序的方法
2015/03/27 PHP
php使用自定义函数实现汉字分割替换功能示例
2017/01/30 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
js 编程笔记 无名函数
2011/06/28 Javascript
JS 无限级 Select效果实现代码(json格式)
2011/08/30 Javascript
jQuery Tools tab(幻灯片)
2012/07/14 Javascript
利用javascript数组长度循环数组内所有元素
2013/12/27 Javascript
js利用数组length属性清空和截短数组的小例子
2014/01/15 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
2014/10/17 Javascript
JavaScript中的对象序列化介绍
2014/12/30 Javascript
javascript实现状态栏中文字动态显示的方法
2015/10/20 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
2015/11/02 Javascript
JS学习之表格的排序简单实例
2016/05/16 Javascript
JS动态计算移动端rem的解决方案
2016/10/14 Javascript
Node.js复制文件的方法示例
2016/12/29 Javascript
JavaScript自动点击链接 防止绕过浏览器访问的方法
2017/01/19 Javascript
jQuery实现简单弹窗遮罩效果
2017/02/27 Javascript
利用JS实现简单的瀑布流加载图片效果
2017/04/22 Javascript
一文读懂ES7中的javascript修饰器
2019/05/06 Javascript
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
Python 的内置字符串方法小结
2016/03/15 Python
python 队列详解及实例代码
2016/10/18 Python
python3库numpy数组属性的查看方法
2018/04/17 Python
python flask实现分页的示例代码
2018/08/02 Python
浅析python 动态库m.so.1.0错误问题
2020/05/09 Python
Python如何测试stdout输出
2020/08/10 Python
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
Nisbets法国:英国最大的厨房和餐饮设备供应商
2019/03/18 全球购物
大学军训感言800字
2014/02/27 职场文书
计算机网络工程专业职业生涯规划书
2014/03/10 职场文书
争先创优个人总结
2015/03/04 职场文书
实践论读书笔记
2015/06/29 职场文书
导游词之任弼时故居
2020/01/07 职场文书
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript
vue里使用create, mounted调用方法
2022/04/26 Vue.js