在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 fileinput模块使用介绍
Nov 30 Python
Python黑魔法@property装饰器的使用技巧解析
Jun 16 Python
将字典转换为DataFrame并进行频次统计的方法
Apr 08 Python
详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
Apr 26 Python
django开发post接口简单案例,获取参数值的方法
Dec 11 Python
Python中三元表达式的几种写法介绍
Mar 04 Python
Python正则表达式匹配和提取IP地址
Jun 06 Python
PyQt编程之如何在屏幕中央显示窗体的实例
Jun 18 Python
python numpy 常用随机数的产生方法的实现
Aug 21 Python
python datetime处理时间小结
Apr 16 Python
python实现五子棋程序
Apr 24 Python
pycharm 对代码做静态检查操作
Jun 09 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 printf输出格式使用说明
2010/12/05 PHP
php生成随机密码的几种方法
2011/01/17 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
2016/11/15 PHP
php+ajax无刷新上传图片的实现方法
2016/12/06 PHP
动态加载script文件的两种方法
2013/08/15 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
页面载入结束自动调用js函数示例
2013/09/23 Javascript
JavaScript的instanceof运算符学习教程
2016/06/08 Javascript
AngularJS入门教程中SQL实例详解
2016/07/27 Javascript
详解vue+webpack+express中间件接口使用
2018/07/17 Javascript
layui实现table加载的示例代码
2018/08/14 Javascript
layui-table对返回的数据进行转变显示的实例
2019/09/04 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
2019/09/26 Javascript
vue的$http的get请求要加上params操作
2020/11/12 Javascript
[03:07]2015国际邀请赛选手档案EHOME.rOtK 是什么让他落泪?
2015/07/31 DOTA
初步解析Python中的yield函数的用法
2015/04/03 Python
python中enumerate函数用法实例分析
2015/05/20 Python
Django中的CACHE_BACKEND参数和站点级Cache设置
2015/07/23 Python
利用Python学习RabbitMQ消息队列
2015/11/30 Python
django传值给模板, 再用JS接收并进行操作的实例
2018/05/28 Python
利用Python如何将数据写到CSV文件中
2018/06/05 Python
python opencv旋转图像(保持图像不被裁减)
2018/07/26 Python
python读取txt文件并取其某一列数据的示例
2019/02/19 Python
基于python实现微信好友数据分析(简单)
2020/02/16 Python
Python类的绑定方法和非绑定方法实例解析
2020/03/04 Python
pycharm工具连接mysql数据库失败问题
2020/04/01 Python
html5中嵌入视频自动播放的问题解决
2020/05/25 HTML / CSS
LightInTheBox西班牙站点:全球商品在线采购
2016/09/22 全球购物
Vans奥地利官方网站:美国原创极限运动潮牌
2018/09/30 全球购物
牧马人澳大利亚官网:Wrangler澳大利亚
2019/10/08 全球购物
初中物理教学反思
2014/01/14 职场文书
单位工程竣工验收方案
2014/03/16 职场文书
社团活动总结书
2014/06/27 职场文书
工作简报怎么写
2015/07/21 职场文书
Java基于Dijkstra算法实现校园导游程序
2022/03/17 Java/Android
vue ant design 封装弹窗表单的使用
2022/06/01 Vue.js