在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 open读写文件实现脚本
Sep 06 Python
python根据出生日期返回年龄的方法
Mar 26 Python
Python安装使用命令行交互模块pexpect的基础教程
May 12 Python
pyqt5自定义信号实例解析
Jan 31 Python
Django中更改默认数据库为mysql的方法示例
Dec 05 Python
利用Pyhton中的requests包进行网页访问测试的方法
Dec 26 Python
Django模板Templates使用方法详解
Jul 19 Python
Python使用lambda表达式对字典排序操作示例
Jul 25 Python
pyhton中__pycache__文件夹的产生与作用详解
Nov 24 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
Jun 22 Python
python 实现波浪滤镜特效
Dec 02 Python
使用pandas模块实现数据的标准化操作
May 14 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创建session的方法实例详解
2015/01/27 PHP
php单例模式实现方法分析
2015/03/14 PHP
PHP中字符与字节的区别及字符串与字节转换示例
2016/10/15 PHP
php读取和保存base64编码的图片内容
2017/04/22 PHP
jquery异步调用页面后台方法&amp;#8207;(asp.net)
2011/03/01 Javascript
jQuery参数列表集合
2011/04/06 Javascript
基于JQuery的Select选择框的华丽变身
2011/08/23 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
2015/04/24 Javascript
JavaScript中的Math.LN2属性用法详解
2015/06/12 Javascript
最好用的Bootstrap fileinput.js文件上传组件
2016/12/12 Javascript
详解angular笔记路由之angular-router
2017/09/12 Javascript
axios取消请求的实践记录分享
2018/09/26 Javascript
js实现动态添加上传文件页面
2018/10/22 Javascript
详解vuex之store源码简单解析
2019/06/13 Javascript
详解基于Vue的支持数据双向绑定的select组件
2019/09/02 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
2019/09/21 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
在VUE中实现文件下载并判断状态的方法
2019/11/08 Javascript
[04:38]完美世界携手游戏风云打造 卡尔工作室饰品系统篇
2013/04/25 DOTA
[18:16]sakonoko 2017年卡尔集锦
2018/02/06 DOTA
[01:26]DOTA2荣耀之路2:iG,China
2018/05/24 DOTA
Python multiprocessing模块中的Pipe管道使用实例
2015/04/11 Python
使用Python下载歌词并嵌入歌曲文件中的实现代码
2015/11/13 Python
python ftp 按目录结构上传下载的实现代码
2018/09/12 Python
python+logging+yaml实现日志分割
2019/07/22 Python
Python中join()函数多种操作代码实例
2020/01/13 Python
基于Python把网站域名解析成ip地址
2020/05/25 Python
YOOX美国官方网站:全球著名的多品牌时尚网络概念店
2016/09/11 全球购物
联想中国官方商城:Lenovo China
2017/10/18 全球购物
应届生求职信
2014/05/31 职场文书
2015新年寄语(一句话)
2014/12/08 职场文书
2015年劳动部工作总结
2015/05/23 职场文书
python实现图片九宫格分割的示例
2021/04/25 Python
正则表达式拆分url实例代码
2022/02/24 Java/Android
JavaScript实现九宫格拖拽效果
2022/06/28 Javascript