在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 CGI脚本的教程
Jun 29 Python
Python导出DBF文件到Excel的方法
Jul 25 Python
Python设计足球联赛赛程表程序的思路与简单实现示例
Jun 28 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
Apr 25 Python
python生成特定分布数的实例
Dec 05 Python
Python处理mysql特殊字符的问题
Mar 02 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
Mar 23 Python
Django框架获取form表单数据方式总结
Apr 22 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
May 12 Python
Python高阶函数与装饰器函数的深入讲解
Nov 10 Python
字典算法实现及操作 --python(实用)
Mar 31 Python
Python requests用法和django后台处理详解
Mar 19 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
欧美媒体选出10年前最流行的17部动画
2017/01/18 日漫
仿AS3实现PHP 事件机制实现代码
2011/01/27 PHP
PHP中的Session对象如何使用
2015/09/25 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
2018/10/12 PHP
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
jquery复选框多选赋值给文本框的方法
2015/01/27 Javascript
jQuery和AngularJS的区别浅析
2015/01/29 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
2015/10/28 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
VsCode新建VueJs项目的详细步骤
2017/09/23 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
2017/12/18 Javascript
10行原生JS实现文字无缝滚动(超简单)
2018/01/02 Javascript
基于JavaScript获取url参数2种方法
2020/04/17 Javascript
Js实现粘贴上传图片的原理及示例
2020/12/09 Javascript
[43:47]DOTA2上海特级锦标赛主赛事日 - 4 败者组第四轮#2 MVP.Phx VS Fnatic第一局
2016/03/05 DOTA
python获取糗百图片代码实例
2013/12/18 Python
python编写暴力破解zip文档程序的实例讲解
2018/04/24 Python
tensorflow 获取模型所有参数总和数量的方法
2018/06/14 Python
Windows 64位下python3安装nltk模块
2018/09/19 Python
Python脚本按照当前日期创建多级目录
2019/03/01 Python
Gtech官方网站:地毯清洁器、吸尘器及园艺设备
2018/05/23 全球购物
洲际酒店集团英国官网:IHG英国
2019/07/10 全球购物
bonprix匈牙利:女士、男士和儿童服装
2019/07/19 全球购物
中国京东和泰国中央集团合资的网站:JD CENTRAL
2020/08/22 全球购物
工商技校毕业生自荐信
2013/11/15 职场文书
优秀研究生自我鉴定
2013/12/04 职场文书
大一军训感言
2014/01/09 职场文书
音乐教育专业自荐信
2014/09/18 职场文书
2014年旅游局法制宣传日活动总结
2014/11/01 职场文书
个人先进材料范文
2014/12/30 职场文书
毛主席纪念堂观后感
2015/06/17 职场文书
什么是检讨书?检讨书的格式及范文
2019/11/05 职场文书
详解Laravel框架的依赖注入功能
2021/05/27 PHP
Linux安装apache服务器的配置过程
2021/11/27 Servers
【DOTA2】半决赛强强对话~ PSG LGD vs EHOME - DPC 2022 CN REGIONAL FINALS WINTER
2022/04/02 DOTA