在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中操作MySQL入门实例
Feb 08 Python
使用IronPython把Python脚本集成到.NET程序中的教程
Mar 31 Python
对Python新手编程过程中如何规避一些常见问题的建议
Apr 01 Python
windows下 兼容Python2和Python3的解决方法
Dec 05 Python
对Python3之方法的覆盖与super函数详解
Jun 26 Python
Django 开发环境配置过程详解
Jul 18 Python
Python 实现将数组/矩阵转换成Image类
Jan 09 Python
python 3.8.3 安装配置图文教程
May 21 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
Aug 03 Python
安装python依赖包psycopg2来调用postgresql的操作
Jan 01 Python
pandas map(),apply(),applymap()区别解析
Feb 24 Python
Pytorch 如何实现LSTM时间序列预测
May 17 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相当简单的分页类
2008/10/02 PHP
php ajax 静态分页过程形式
2011/09/02 PHP
PHP-CGI远程代码执行漏洞分析与防范
2017/05/07 PHP
PHP命名空间namespace及use的简单用法分析
2018/08/03 PHP
Stop SQL Server
2007/06/21 Javascript
关于js中alert弹出窗口文本换行问题简单详细说明
2012/12/11 Javascript
Javascript/Jquery——简单定时器的多种实现方法
2013/07/03 Javascript
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
JavaScript学习小结(一)——JavaScript入门基础
2015/09/02 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
Angularjs---项目搭建图文教程
2016/07/08 Javascript
浅谈Javascript数据属性与访问器属性
2016/07/26 Javascript
jQuery轮播图效果精简版完整示例
2016/09/04 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
2017/01/15 Javascript
JS实现的DIV块来回滚动效果示例
2017/02/07 Javascript
基于vue1和vue2获取dom元素的方法
2018/03/17 Javascript
layui自定义ajax左侧三级菜单
2019/07/26 Javascript
Nodejs监控事件循环异常示例详解
2019/09/22 NodeJs
详解ES6数组方法find()、findIndex()的总结
2020/05/12 Javascript
google广告之另类js调用实现代码
2020/08/22 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
python实现简单的单变量线性回归方法
2018/11/08 Python
Python代码实现删除一个list里面重复元素的方法
2019/04/02 Python
python 模拟银行转账功能过程详解
2019/08/06 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
Python sys模块常用方法解析
2020/02/20 Python
怎么快速自学python
2020/06/22 Python
浅析Python __name__ 是什么
2020/07/07 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
2020/09/21 Python
html5+css3之CSS中的布局与Header的实现
2014/11/21 HTML / CSS
三星印度官网:Samsung印度
2019/08/03 全球购物
会计与审计毕业生自荐信范文
2013/12/30 职场文书
保研导师推荐信
2015/03/25 职场文书
详解Python 3.10 中的新功能和变化
2021/04/28 Python
uwsgi+nginx代理Django无法访问静态资源的解决
2021/05/10 Servers