在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中逻辑运算符的使用
May 13 Python
三步实现Django Paginator分页的方法
Jun 11 Python
python数据预处理之数据标准化的几种处理方式
Jul 17 Python
Django 迁移、操作数据库的方法
Aug 02 Python
8段用于数据清洗Python代码(小结)
Oct 31 Python
Python实现把类当做字典来访问
Dec 16 Python
在notepad++中实现直接运行python代码
Dec 18 Python
pytorch中nn.Conv1d的用法详解
Dec 31 Python
在Anaconda3下使用清华镜像源安装TensorFlow(CPU版)
Apr 19 Python
Python如何使用PIL Image制作GIF图片
May 16 Python
Python软件包安装的三种常见方法
Jul 07 Python
Golang Web 框架Iris安装部署
Aug 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 异常处理实现代码
2009/03/10 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
2011/04/07 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
javascript 兼容FF的onmouseenter和onmouseleave的代码
2008/07/19 Javascript
简单的前端js+ajax 购物车框架(入门篇)
2011/10/29 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2012/01/21 Javascript
JS跨域代码片段
2012/08/30 Javascript
jQuery学习总结之jQuery事件
2014/06/30 Javascript
Node.js的包详细介绍
2015/01/14 Javascript
基于Jquery和html5的7款个性化地图插件
2015/11/17 Javascript
javascript基础知识
2016/06/07 Javascript
浅析jQuery 3.0中的Data
2016/06/14 Javascript
Js动态设置rem来实现移动端字体的自适应代码
2016/10/14 Javascript
JS中的作用域链
2017/03/01 Javascript
深入理解ES6学习笔记之块级作用域绑定
2017/08/19 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
解决nodejs的npm命令无反应的问题
2018/05/17 NodeJs
Vuex中的Mutations的具体使用方法
2020/06/01 Javascript
vue 遮罩层阻止默认滚动事件操作
2020/07/28 Javascript
[01:24]2014DOTA2 TI第二日 YYF表示这届谁赢都有可能
2014/07/11 DOTA
python中的列表推导浅析
2014/04/26 Python
Python编程实现微信企业号文本消息推送功能示例
2017/08/21 Python
Python下载网络小说实例代码
2018/02/03 Python
python微信跳一跳系列之色块轮廓定位棋盘
2018/02/26 Python
Django中url的反向查询的方法
2018/03/14 Python
python 编码规范整理
2018/05/05 Python
Python多个装饰器的调用顺序实例解析
2020/05/22 Python
tensorflow实现残差网络方式(mnist数据集)
2020/05/26 Python
基于html和CSS3制作酷炫的导航栏
2015/09/23 HTML / CSS
促销活动策划方案
2014/01/12 职场文书
《母鸡》教学反思
2014/02/25 职场文书
机关干部四风问题自查报告及整改措施
2014/10/26 职场文书
大学生求职自荐信
2015/03/24 职场文书
爱心捐款活动总结
2015/05/09 职场文书