在Mac OS上搭建Python的开发环境


Posted in Python onDecember 24, 2015

一. 安装python

mac系统其实自带了一个python的执行执行环境,用来运行python还行,但是开发可能就不够了,因此我们需要重新安装python。这里有两种方案安装:

1.homebrew

brew install python

这个方案比较简单,如果出错的话可以给前面加sudo试试,这个安装的python可能不是最新版.

2.从官网下载安装
大家可以从https://www.python.org/download下载安装最新版的python,安装比较无脑,一路按下去就OK,缺点是以后升级,卸载都得自己维护.

这两个方法安装的python的位置是不一样的,大家可以用:

which python

来查看安装位置.安装完成后在终端中键入python来验证安装是否成功.

二. 安装pip

这里好多文章中说要先安装easy_install, 其实是不用的.

1.我们先获取pip安装脚本:

wget https://bootstrap.pypa.io/get-pip.py

如果没有安装wget可以去这里将所有内容复制下来,新建get-pip.py文件,将内容拷进去就OK了.

2.安装pip

sudo python get-pip.py

用python执行刚才获取的脚本,这里sudo可以选择使用,若遇到类似这个报错则必须加sudo:

Exception:

Traceback (most recent call last):

...

OSError: [Errno 13] Permission denied: 'XXX/pip-0.7.2-py2.7.egg/EGG-INFO/dependency_links.txt'

Storing debug log for failure in /Users/bilt/.pip/pip.log

安装成功后可以在终端中键入pip来检测,如果不行重启终端后尝试.

3.修改pip源

在天朝,由于功夫网的原因,使用pip安装一些模块会特别慢甚至无法下载,因此我们需要修改pip的源到国内的一些镜像地址,特别感谢国内无私奉献的组织~

首先进入HOME路径:

cd ~

创建.pip目录:

mkdir .pip

创建pip.conf文件:

touch pip.conf

大家可以用自己喜欢的编辑器打开pip.conf文件,我现在使用的时v2ex的源,所以添加:

[global]
index-url = http://pypi.v2ex.com/simple

大家可以把index-url的值设置为自己实际源的地址.

至此pip源修改成功,以后使用pip安装模块时都会从这个源去下载安装,大家可以自行测试一下.

三. 其他模块安装

1.Pillow/PIL

想用python处理图片,自然少不了PIL这个模块, 由于PIL长期没有更新了, 所以有了Pillow这个模块, 依赖于PIL, 新版的pip安装后会自带Pillow, 但是好像没有zlib模块, 所以会报错:

File "/Library/Python/2.7/site-packages/PIL/Image.py", line 1105, in paste
 im.load()

 File "/Library/Python/2.7/site-packages/PIL/ImageFile.py", line 190, in load

 d = Image._getdecoder(self.mode, d, a, self.decoderconfig)

 File "/Library/Python/2.7/site-packages/PIL/Image.py", line 389, in _getdecoder

 raise IOError("decoder %s not available" % decoder_name)

IOError: decoder zip not available

因此我们需要手动重新安装:

sudo pip install -U Pillow

2.MySQLdb
在下面的网址下载mysqldb模块:

http://sourceforge.net/projects/mysql-python/
在mac os x直接双击解压,命令行进入解压后的目录, 执行python setup.py build

如果有

sh: mysql_config: command not found

提示,我们需要编辑下mysql的路径,使用vim打开setup_posix.py

找到:

mysql_config.path = "mysql_config"

改为:

mysql_config.path = "/usr/local/mysql/bin/mysql_config"

然后执行:

sudo python setup.py install

安装成功后,在命令行输入python进入python环境,输入import MySQLdb,我的环境中报下面的错误:

>>> import MySQLdb
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "MySQLdb/__init__.py", line 19, in </module><module>
 import _mysql
ImportError: dlopen(/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
 Referenced from: /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so
 Reason: image not found

解决方法,我们建立一个软链就可以了

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

这样我们就在mac os x的python环境下安装好了MySQLdb模块

Python 相关文章推荐
python和C语言混合编程实例
Jun 04 Python
详解Python2.x中对Unicode编码的使用
Apr 03 Python
如何处理Python3.4 使用pymssql 乱码问题
Jan 08 Python
解决python3爬虫无法显示中文的问题
Apr 12 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
Jan 30 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
Jan 30 Python
Python list列表中删除多个重复元素操作示例
Feb 27 Python
tensorflow 实现打印pb模型的所有节点
Jan 23 Python
Python基础之字符串常见操作经典实例详解
Feb 26 Python
Django生成数据库及添加用户报错解决方案
Oct 09 Python
如何用Django处理gzip数据流
Jan 29 Python
Python的三个重要函数详解
Jan 18 Python
详解Python字符串对象的实现
Dec 24 #Python
浅谈Python单向链表的实现
Dec 24 #Python
Python使用面向对象方式创建线程实现12306售票系统
Dec 24 #Python
安装ElasticSearch搜索工具并配置Python驱动的方法
Dec 22 #Python
Python生成随机验证码的两种方法
Dec 22 #Python
基于python实现微信模板消息
Dec 21 #Python
python如何实现远程控制电脑(结合微信)
Dec 21 #Python
You might like
PHP的栏目导航程序
2006/10/09 PHP
php 友好URL的实现(吐血推荐)
2008/10/04 PHP
学习php设计模式 php实现合成模式(composite)
2015/12/08 PHP
php metaphone()函数的定义和用法
2016/05/15 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
2018/08/17 PHP
基于PHP实现用户登录注册功能的详细教程
2020/08/04 PHP
js 弹出框 替代浏览器的弹出框
2010/10/29 Javascript
为JavaScript类型增加方法的实现代码(增加功能)
2011/12/29 Javascript
让人印象深刻的10个jQuery手风琴效果应用
2012/05/08 Javascript
jQuery ui插件的使用方法代码实例
2013/05/08 Javascript
JS中的prototype与面向对象的实例讲解
2013/05/22 Javascript
js模仿hover的具体实现代码
2013/12/30 Javascript
Eclipse下jQuery文件报错出现错误提示红叉
2014/01/13 Javascript
jquery获取元素索引值index()示例
2014/02/13 Javascript
JQuery创建DOM节点的方法
2015/06/11 Javascript
Bootstrap图片轮播组件使用实例解析
2016/06/30 Javascript
js鼠标移动时禁止选中文字
2017/02/19 Javascript
Vue2 SSR渲染根据不同页面修改 meta
2017/11/20 Javascript
详解如何在你的Vue项目配置vux
2018/06/04 Javascript
对angularJs中自定义指令replace的属性详解
2018/10/09 Javascript
vue.js实现二级菜单效果
2019/10/19 Javascript
vue-next/runtime-core 源码阅读指南详解
2019/10/25 Javascript
使用原生JS实现滚轮翻页效果的示例代码
2020/05/31 Javascript
JavaScript中while循环的基础使用教程
2020/08/11 Javascript
关于Python元祖,列表,字典,集合的比较
2017/01/06 Python
50行Python代码实现人脸检测功能
2018/01/23 Python
Python:type、object、class与内置类型实例
2019/12/25 Python
基于Python采集爬取微信公众号历史数据
2020/11/27 Python
详解使用canvas保存网页为pdf文件支持跨域
2018/11/23 HTML / CSS
澳大利亚首个在线预订旅游网站:Wotif
2017/07/19 全球购物
Tretorn美国官网:瑞典外套和鞋类品牌,抵御风雨
2018/07/19 全球购物
英国信箱在线鲜花速递公司:Bloom & Wild
2019/03/10 全球购物
中文专业毕业生自荐书范文
2014/01/04 职场文书
专项法律服务方案
2014/06/11 职场文书
2014年卫生院工作总结
2014/12/03 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书