Python第三方库的安装方法总结


Posted in Python onJune 06, 2016

Python 是一门优雅的语言,简洁的语法,强大的功能。当然丰富的第三方库,更能加速开发。那么问题来了,如何安装这些第三方库(包)呢?

安装第三方库的方式其实不多。下面就介绍一些技巧。

源码安装
很多第三方库都是开源的,几乎都可以在github 或者 pypi上找到源码。找到源码格式大概都是 zip 、 tar.zip、 tar.bz2格式的压缩包。解压这些包,进入解压好的文件夹,通常会看见一个 setup.py 的文件。打开命令行,进入该文件夹。运行

python setup.py install

这个命令,就能把这个第三库安装到系统里,也就是你的 Python 路径,windows大概是在 C:\Python2.7\Lib\site-packages。
Linux会在 /usr/local/lib/python2.7/dist-packages。
Mac 应该在 /Library/Python/2.7/site-packages。如果是在 virtulenv环境下安装,这个包就被安装在所建立的虚拟环境下的 site-packages/目录下。想要卸载这些库也很简单,进入 site-packages,直接删掉库文件就 OK 啦。当然,这些安装可能有一点麻烦,需要下载,解压,再运行安装,卸载也不是很方便。有没有一种工具,可以帮外面管理这些库呢?

包管理器 (pip 和 easy_install)
现在很多编程语言,都带有包管理器,例如 Ruby 的 gem,nodejs的npm。Python当然也不例外,拥有大名鼎鼎的 pip和 easy_install。

前面说到的pypi就是一些 python第三库所在的源,使用 pip 或者 easy_install 安装模块,会搜索这个源,然后自动下载安装。比如我们需要安装 flask 框架具体命令如下:

pip install flask

或者

easy_install flask

简单吧,一个简单的命令就搞定。卸载也很方便,例如我们需要卸载flask

pip uninstall flask

查看所安装的包,包括系统自带的和手动安装的

pip list

还可以搜索包

pip search flask

还可以重定向输出项目使用的库。

pip freeze > requirements.txt

这样就会把该环境下的第三方库重定向到 requirements.txt文件内,如果给别人安装项目的依赖,只需要运行:

pip install -r requirements.txt

很方便吧。当然,有时候,我们的网络并不是那么顺畅,pip是在线安装的,可不可以离线呢?当然可以啦,pip install 的第一步,就是在 pypi 上寻找包,然后下载到本地。如果网络不好,可以先建一个本地的仓库,把常用的包离线下载。比如可以下载 flask 的源码

pip intall flask-master.zip

同样也可以安装。

虚拟环境相关安装
当然,上面介绍的,其实也是很普通很常见的方式,也算不上什么技巧。下面介绍的,则是一些需要了解原理和解决非常规问题的技巧。

使用Python,我们会喜欢用 virtualenv建立虚拟环境,例如建立一个 venv的虚拟环境。我们只需要 source进去就可以使用pip安装了。可是有时候,即使在虚拟环境下,使用了sudo的前缀(windows忽略),那么安装的库不是在虚拟环境,而是被安装到系统下的site-package 目录下了。

windows的用户可能会很开心,不需要注意这个问题。当然 windows 也同样有着自己的问题。在 windows上安装python,一般是编译好的二进制包exe可执行文件。通常有 32位和64位的python。对于第三方库,本来32和64不会有太大的差别。但是对于一些C写的python库,如mysqldb,PIL, pillow,会发现使用 pip或者 easy_install 的方式会报错:

Fixing python error: Unable to find vcvarsall.bat

原因大概是 windows上缺少一些 C编译器东东。源码需要编译一下才能安装,此时 windows就很苦逼了。当然,有一些好心人,帮您把常用的一些库编译成 exe 可执行文件,放到了这个站点。你只需要寻找对于版本的,下载一键安装。

可是,还有一个问题,下载 exe 文件,运行安装,这个库是被安装到了系统的 site-package 目录下,如果我在windows 建立了venv虚拟环境,这样安装不是歇菜了么?

别担心,这个文章的真正技巧,就是为了解决这个问题的。我们来安装64位的 mysqldb。先下载 MySQL‑python‑1.2.5.win‑amd64‑py2.7.exe 在 windows 上,用命令行进入虚拟环境 venv。然后运行

easy_install MySQL‑python‑1.2.5.win‑amd64‑py2.7.exe

完美解决,在 venv 虚拟环境,将mysqldb 库安装到了venv下。

有了上面三个方式,几乎涵盖 python 所有平台的第三方库安装。不过话说回来,尽管 Python 是跨平台,开发环境,还是尽量使用 Linux或者MacOS,这两个系统有更好的工具以及省去很多莫名其妙的问题。

Python 相关文章推荐
windows下python模拟鼠标点击和键盘输示例
Feb 28 Python
记录Django开发心得
Jul 16 Python
Python进阶篇之字典操作总结
Nov 16 Python
widows下安装pycurl并利用pycurl请求https地址的方法
Oct 15 Python
Python实现字典按key或者value进行排序操作示例【sorted】
May 03 Python
python实现音乐播放器 python实现花框音乐盒子
Feb 25 Python
Python发送手机动态验证码代码实例
Feb 28 Python
Anaconda+vscode+pytorch环境搭建过程详解
May 25 Python
使用python编写一个语音朗读闹钟功能的示例代码
Jul 14 Python
OpenCV图片漫画效果的实现示例
Aug 18 Python
Python操控mysql批量插入数据的实现方法
Oct 27 Python
Pycharm 跳转回之前所在页面的操作
Feb 05 Python
在Python程序和Flask框架中使用SQLAlchemy的教程
Jun 06 #Python
Python的socket模块源码中的一些实现要点分析
Jun 06 #Python
深入浅析python定时杀进程
Jun 06 #Python
深入理解python函数递归和生成器
Jun 06 #Python
python下调用pytesseract识别某网站验证码的实现方法
Jun 06 #Python
浅析AST抽象语法树及Python代码实现
Jun 06 #Python
使用Python的Flask框架构建大型Web应用程序的结构示例
Jun 04 #Python
You might like
PHP生成Flash动画的实现代码
2010/03/12 PHP
PHP的substr_replace将指定两位置之间的字符替换为*号
2011/05/04 PHP
PHP+Mysql实现多关键字与多字段生成SQL语句的函数
2014/11/05 PHP
php递归法读取目录及文件的方法
2015/01/30 PHP
thinkphp3.2点击刷新生成验证码
2016/02/16 PHP
php中分页及SqlHelper类用法实例
2017/01/12 PHP
javascript 获取网页参数系统
2008/07/19 Javascript
jQuery控制元素显示、隐藏、切换、滑动的方法总结
2015/04/16 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
2015/04/16 Javascript
JSP基于Bootstrap分页显示实例解析
2016/06/12 Javascript
深入理解Vue 的条件渲染和列表渲染
2017/09/01 Javascript
webpack v4 从dev到prd的方法
2018/04/02 Javascript
解决Vue axios post请求,后台获取不到数据的问题方法
2018/08/11 Javascript
Vue组件之单向数据流的解决方法
2018/11/10 Javascript
详解小程序横屏方案对比
2020/06/28 Javascript
vue开发简单上传图片功能
2020/06/30 Javascript
[30:00]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第二场 11.28
2020/12/01 DOTA
[01:07:15]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第二场 1月25日
2021/03/11 DOTA
python使用scrapy发送post请求的坑
2018/09/04 Python
在Pycharm terminal中字体大小设置的方法
2019/01/16 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
2019/09/29 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
2020/01/25 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
浅谈图像处理中掩膜(mask)的意义
2020/02/19 Python
在python3中实现查找数组中最接近与某值的元素操作
2020/02/29 Python
python3 简单实现组合设计模式
2020/07/02 Python
美体小铺瑞典官方网站:The Body Shop瑞典
2018/01/27 全球购物
服装公司总经理岗位职责
2013/11/30 职场文书
大学学生会竞选演讲稿
2014/04/25 职场文书
群众路线剖析材料怎么写
2014/10/09 职场文书
搞笑婚前保证书
2015/02/28 职场文书
食堂卫生管理制度
2015/08/04 职场文书
新兵入伍决心书
2015/09/22 职场文书
my.ini优化mysql数据库性能的十个参数(推荐)
2021/05/26 MySQL
Vue+TypeScript中处理computed方式
2022/04/02 Vue.js
Win11运行育碧游戏总是崩溃怎么办 win11玩育碧游戏出现性能崩溃的解决办法
2022/04/06 数码科技