在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 相关文章推荐
gearman的安装启动及python API使用实例
Jul 08 Python
python实现的jpg格式图片修复代码
Apr 21 Python
python实现一次创建多级目录的方法
May 15 Python
浅谈Python的垃圾回收机制
Dec 17 Python
Python使用修饰器执行函数的参数检查功能示例
Sep 26 Python
Python 给某个文件名添加时间戳的方法
Oct 16 Python
python脚本当作Linux中的服务启动实现方法
Jun 28 Python
python 6.7 编写printTable()函数表格打印(完整代码)
Mar 25 Python
基于Python脚本实现邮件报警功能
May 20 Python
如何通过命令行进入python
Jul 06 Python
用python写PDF转换器的实现
Oct 29 Python
详解pycharm自动import所需的库的操作方法
Nov 30 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
搜索和替换文件或目录的一个好类--很实用
2006/10/09 PHP
PHP实现简单实用的验证码类
2015/07/29 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
2017/04/01 PHP
thinkphp5实现无限级分类
2019/02/18 PHP
仅用[]()+!等符号就足以实现几乎任意Javascript代码
2010/03/01 Javascript
js实现弹窗插件功能实例代码分享
2013/12/12 Javascript
一个Action如何调用两个不同的方法
2014/05/22 Javascript
js文件包含的几种方式介绍
2014/09/28 Javascript
JS实现自动切换文字的导航效果代码
2015/08/27 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
Boostrap模态窗口的学习小结
2016/03/28 Javascript
jquery显示隐藏元素的实现代码
2016/05/19 Javascript
基于js中style.width与offsetWidth的区别(详解)
2017/11/12 Javascript
Node.js使用MySQL连接池的方法实例
2018/02/11 Javascript
jQuery实现获取动态添加的标签对象示例
2018/06/28 jQuery
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
2019/03/01 Javascript
Vue+Koa2 打包后进行线上部署的教程详解
2019/07/31 Javascript
微信小程序工具函数封装
2019/10/28 Javascript
Angular8 实现table表格表头固定效果
2020/01/03 Javascript
python通过smpt发送邮件的方法
2015/04/30 Python
Python数据分析之获取双色球历史信息的方法示例
2018/02/03 Python
Python multiprocess pool模块报错pickling error问题解决方法分析
2019/03/20 Python
Python如何基于selenium实现自动登录博客园
2019/12/16 Python
pytorch 指定gpu训练与多gpu并行训练示例
2019/12/31 Python
TensorFlow2.0:张量的合并与分割实例
2020/01/19 Python
一文了解python 3 字符串格式化 F-string 用法
2020/03/04 Python
一些关于python 装饰器的个人理解
2020/08/31 Python
详解python爬取弹幕与数据分析
2020/11/14 Python
特罗佩亚包官方网站:Tropea
2017/01/03 全球购物
澳大利亚和新西兰最大的在线旅行社之一:Aunt Betty
2019/08/07 全球购物
2014信息技术专业毕业生自我评价
2014/01/17 职场文书
诚实守信演讲稿
2014/09/01 职场文书
学生检讨书如何写
2014/10/30 职场文书
入党宣誓仪式主持词
2015/06/29 职场文书
oracle删除超过N天数据脚本的方法
2022/02/28 Oracle
基于Python实现西西成语接龙小助手
2022/08/05 Golang