在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检测服务器是否正常
Feb 16 Python
Python 2与Python 3版本和编码的对比
Feb 14 Python
Python中查看文件名和文件路径
Mar 31 Python
python人民币小写转大写辅助工具
Jun 20 Python
python树莓派红外反射传感器
Jan 21 Python
Python中的asyncio代码详解
Jun 10 Python
python requests模拟登陆github的实现方法
Dec 26 Python
Python的对象传递与Copy函数使用详解
Dec 26 Python
python实现逢七拍腿小游戏的思路详解
May 26 Python
keras topN显示,自编写代码案例
Jul 03 Python
Python绘制数码晶体管日期
Feb 19 Python
python开发人人对战的五子棋小游戏
May 02 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强制下载类型的实现代码
2011/04/21 PHP
linux使用crontab实现PHP执行计划定时任务
2014/05/10 PHP
php类中的各种拦截器用法分析
2014/11/03 PHP
php打印输出棋盘的实现方法
2014/12/23 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
PHP数组常用函数实例小结
2018/08/20 PHP
javascript(jquery)利用函数修改全局变量的代码
2009/11/02 Javascript
JQuery下的Live方法和$.browser方法使用代码
2010/06/02 Javascript
纯JAVASCRIPT图表动画插件Highcharts Examples
2011/04/16 Javascript
JavaScript快速检测浏览器对CSS3特性的支持情况
2012/09/26 Javascript
Js与下拉列表处理问题解决
2014/02/13 Javascript
5种处理js跨域问题方法汇总
2014/12/04 Javascript
javaScript中slice函数用法实例分析
2015/06/08 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
jQuery实现弹出窗口弹出div层的实例代码
2017/01/09 Javascript
基于JavaScript实现拖动滑块效果
2017/02/16 Javascript
轻量级JS Cookie插件js-cookie的使用方法
2018/03/22 Javascript
微信小程序之多列表的显示和隐藏功能【附源码】
2018/08/06 Javascript
JS中使用react-tooltip插件实现鼠标悬浮显示框
2019/05/15 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
javascript自定义日期比较函数用法示例
2019/07/22 Javascript
element-ui 文件上传修改文件名的方法示例
2019/11/05 Javascript
python安装教程 Pycharm安装详细教程
2017/05/02 Python
解决python2 绘图title,xlabel,ylabel出现中文乱码的问题
2019/01/29 Python
在python image 中安装中文字体的实现方法
2019/08/22 Python
使用pth文件添加Python环境变量方式
2020/05/26 Python
Python如何对齐字符串
2020/07/30 Python
Bugatchi官方网站:男士服装在线
2019/04/10 全球购物
新西兰最大、占有率最高的综合性药房:PharmacyDirect药房中文网
2020/11/03 全球购物
奥地利手表、香水、化妆品和珠宝购物网站:Brasty.at
2021/01/17 全球购物
最新销售员个人自荐信
2013/09/21 职场文书
个人思想理论学习的自我鉴定
2013/11/30 职场文书
产品销售计划书
2014/05/04 职场文书
交通运输局四风问题对照检查材料思想汇报
2014/10/09 职场文书
一文读懂navicat for mysql基础知识
2021/05/31 MySQL
php png失真的原因及解决办法
2021/10/24 PHP