在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
Python中利用sqrt()方法进行平方根计算的教程
May 15 Python
Python搜索引擎实现原理和方法
Nov 27 Python
微信跳一跳python代码实现
Jan 05 Python
python 实时得到cpu和内存的使用情况方法
Jun 11 Python
Python实现的绘制三维双螺旋线图形功能示例
Jun 23 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
Oct 18 Python
简单了解python协程的相关知识
Aug 31 Python
python连接PostgreSQL数据库的过程详解
Sep 18 Python
Python编写打字训练小程序
Sep 26 Python
Python flask框架端口失效解决方案
Jun 04 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
Jul 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
受疫情影响 动画《Re从零开始的异世界生活》第二季延期至7月
2020/03/10 日漫
php将fileterms函数返回的结果变成可读的形式
2011/04/21 PHP
PHP开发框架kohana3 自定义路由设置示例
2014/07/14 PHP
php将字符串转换成16进制的方法
2015/03/17 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
2015/04/03 PHP
php截取指定2个字符之间字符串的方法
2015/04/15 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
锋利的jQuery 要点归纳(二) jQuery中的DOM操作(下)
2010/03/23 Javascript
jQuery页面滚动浮动层智能定位实例代码
2011/08/23 Javascript
jQuery插件开发全解析
2012/10/10 Javascript
jquery的ajax异步请求接收返回json数据实例
2014/06/16 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
JavaScript程序中的流程控制语句用法总结
2016/05/23 Javascript
详解基于Vue+Koa的pm2配置
2017/10/24 Javascript
Vue中添加手机验证码组件功能操作方法
2017/12/07 Javascript
解决在Vue中使用axios用form表单出现的问题
2019/10/30 Javascript
JS实现星星海特效
2019/12/24 Javascript
[04:11]2014DOTA2国际邀请赛 CIS遗憾出局梦想不灭
2014/07/09 DOTA
python机器学习之神经网络(二)
2017/12/20 Python
python3.7 使用pymssql往sqlserver插入数据的方法
2019/07/08 Python
python 用所有标点符号分隔句子的示例
2019/07/15 Python
在Python中等距取出一个数组其中n个数的实现方式
2019/11/27 Python
pyspark 随机森林的实现
2020/04/24 Python
简单了解python关键字global nonlocal区别
2020/09/21 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
德国综合购物网站:OTTO
2018/11/13 全球购物
英国买鞋网站:Charles Clinkard
2019/11/14 全球购物
优秀毕业生求职推荐信范文
2013/11/21 职场文书
结构工程个人自荐信范文
2013/11/30 职场文书
致跳高运动员加油稿
2014/02/12 职场文书
群教班子对照检查材料
2014/08/26 职场文书
2015年人力资源部工作总结
2015/04/30 职场文书
Python如何把不同类型数据的json序列化
2021/04/30 Python
Python借助with语句实现代码段只执行有限次
2022/03/23 Python
vue修饰符.capture和.self的区别
2022/04/22 Vue.js