在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批量提交沙箱问题实例
Oct 08 Python
python删除列表内容
Aug 04 Python
python实现简单聊天应用 python群聊和点对点均实现
Sep 14 Python
pygame游戏之旅 添加碰撞效果的方法
Nov 20 Python
Python类的继承、多态及获取对象信息操作详解
Feb 28 Python
Python+OpenCV采集本地摄像头的视频
Apr 25 Python
pycharm 更改创建文件默认路径的操作
Feb 15 Python
Python机器学习工具scikit-learn的使用笔记
Jan 28 Python
python本地文件服务器实例教程
May 02 Python
Python数据分析之pandas读取数据
Jun 02 Python
Python实现打乒乓小游戏
Sep 25 Python
Python中的datetime包与time包包和模块详情
Feb 28 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
全国FM电台频率大全 - 17 湖北省
2020/03/11 无线电
图解找出PHP配置文件php.ini的路径的方法
2014/08/20 PHP
php实现的mongoDB单例模式操作类
2018/01/20 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
2020/04/13 PHP
PHP的imageTtfText()函数深入详解
2021/03/03 PHP
Firefox中beforeunload事件的实现缺陷浅析
2012/05/03 Javascript
特殊情况下如何获取span里面的值
2014/05/20 Javascript
javascript中cookie对象用法实例分析
2015/01/30 Javascript
js与jquery回车提交的方法
2015/02/03 Javascript
深入理解JavaScript系列(48):对象创建模式(下篇)
2015/03/04 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
2015/03/19 Javascript
基于jQuery实现Div窗口震动特效代码-代码简单
2015/08/28 Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
2016/11/21 Javascript
微信小程序中做用户登录与登录态维护的实现详解
2017/05/17 Javascript
JavaScript数组特性与实践应用深入详解
2018/12/30 Javascript
原生JS检测CSS3动画是否结束的方法详解
2019/01/27 Javascript
es6数据变更同步到视图层的方法
2019/03/04 Javascript
js get和post请求实现代码解析
2020/02/06 Javascript
node创建Vue项目步骤详解
2020/03/06 Javascript
JS实现时间校验的代码
2020/05/25 Javascript
Postman无法正常返回结果问题解决
2020/08/28 Javascript
python3序列化与反序列化用法实例
2015/05/26 Python
Python脚本实现12306火车票查询系统
2016/09/30 Python
Centos7 下安装最新的python3.8
2019/10/28 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
python except异常处理之后不退出,解决异常继续执行的实现
2020/04/25 Python
在Tensorflow中实现leakyRelu操作详解(高效)
2020/06/30 Python
纯CSS3实现鼠标滑过按钮动画第二节
2020/07/16 HTML / CSS
如何做好总经理助理
2013/11/12 职场文书
毕业生应聘幼儿园的自荐信
2013/11/20 职场文书
致跳高运动员广播稿
2014/01/13 职场文书
三八妇女节活动主持词
2014/03/17 职场文书
送温暖献爱心活动总结
2014/07/08 职场文书
高二学年自我鉴定范文(2篇)
2014/09/26 职场文书
党员教师四风问题整改措施思想汇报
2014/10/08 职场文书
宝塔更新Python及Flask项目的部署
2022/04/11 Python