文章转载地址:
http://blog.csdn.net/intel80586/article/details/8487682 +http://www.myexception.cn/operating-system/1616547.html
MAC OSX使用Python安装模块问题
系统环境:MAC OSX 10.9.2
Python版本:2.7.5
新入手的RMBP,自带了Python环境,但是将其投入到生产环境时,出现了种种问题,首先最最致命的,就是安装模块出现问题,导致一直无法正常开发,下面是本人在安装Python模块的时候,所出现并解决的,总结如下,希望对后来者有帮助(拿MySQL-python举例,安装PIL也遇到了同样的问题):
(1)不管在使用easy_install安装模块,还是下载安装包,使用sudo python setup.py build安装,都会出现:
******
error: command 'cc' failed with exit status 1
clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]
clang: note: this will be a hard error (cannot be downgraded to a warning) in the future
error: command 'cc' failed with exit status 1
经过一系列的查找:http://www.tuicool.com/articles/zI7Vzu,貌似是MAC OS的Xcode从5.1起给编译器规定对于未知参数传入视为error,我们需要使用ARCHFLAGS将该error降级为warning,因此最后的安装命令应该如下:
sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future easy_install MySQL-python
这样,问题就解决了,成功安装上了MySQL-python
(2)虽然安装上了MySQL-python,在代码开发过程中,运行代码,问题又出现了:
******
import MySQLdb
File "build/bdist.macosx-10.9-intel/egg/MySQLdb/__init__.py", line 19, in <module>
File "build/bdist.macosx-10.9-intel/egg/_mysql.py", line 7, in <module>
File "build/bdist.macosx-10.9-intel/egg/_mysql.py", line 6, in __bootstrap__
ImportError: dlopen(/Users/kris/.python-eggs/MySQL_python-1.2.5-py2.7-macosx-10.9-intel.egg-tmp/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
Referenced from: /Users/kris/.python-eggs/MySQL_python-1.2.5-py2.7-macosx-10.9-intel.egg-tmp/_mysql.so
Reason: image not found
经过查找,我添加两个符号链接(软链接):
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
sudo ln -s /usr/local/mysql/lib /usr/local/mysql/lib/mysql
再次运行程序,问题就解决了。
艹,终于把python-mysql装好了,花了我7个小时的时间。mac下装真费劲呀。。
趁着还记得中间的问题是怎么解决的,赶快写出来,一是方便给大家解决解决问题,二是我重装系统后给自己留一个操作步骤。。
如果有人需要我提供的软件,可以留言。。虽然我不怎么上csdn。。哈哈。
前提回顾:我的电脑是mac os x 10.8.2 最新的操作系统。
------------------------------------------------------------------------------
需要准备的软件:
1、mac x 下面自带的python 貌似是64位的。这个你得保证你自己确认一下。
2、安装mysql,这个你可以去放狗去搜,啥,不会?没有?还等啥,M我吧。。。
提供软件名称,找度娘放狗一搜就是了~~
mysql-5.5.29-osx10.6-x86_64.dmg
mysql-workbench-gpl-5.2.45-osx-i686.dmg
3、安装python-mysqldb
=========你可以先试试第一种==========
这个好几种版本,联网下载,开终端运行如下,行不行的你自己试试,如果成功了,那祝贺你,如果失败了,走你~~
#sudo easy_install mysql-python
好了,开始第二种了。。。首先声明~如果你和我一样的电脑,我估摸着你和我肯定会有一样的问题。如有雷同哪就是难友了。。
好了,不废话了,我用的MySQL-python-1.2.3.tar。。这个你不知道哪下?没问题,M我吧~虽然我不会告诉你我的联系方式。
解压:啥命令来着?自己查吧,下次你就记住了。老吃现成的,永远记不住,元芳,你怎么看?
---
解压出来后,终端cd进去,用你喜欢的编辑器编辑site.cfg(加个括弧,强调下是MySQL-python的文件哦。)
有一行#mysql_config = mysql_config = /usr/local/bin/mysql_config
把前面的注释去掉,根据自己电脑mysql实际安装目录填写,如果你一路next的话,应该是下面这样的。
mysql_config = /usr/local/mysql/bin/mysql_config
你自己拿个终端自己cd一下这个目录,能cd进去就O了。。
然后还不能装,还得装个坑爹的东西,gcc 这个东西好呀,可惜10.8.2不带呀,没事自己装吧。。
哥也是自己装过来的。。我仅说我自己的操作哈,如果你有别的方式可以自己安装gcc,那就跳过,我这个装的方式很慢。因为要去app store去下Xcode,这个东西真的很大。有耐心就慢慢来吧,哈~~等你装完了,我还要告诉你,你还是没有把gcc安装完,不管你信不信,反正我信了!!因为你还要个叫command_line_tools 的jb玩意,装上这个玩意你才能真正拥有gcc(画外音“下你妹的gcc呀,网上有免xcode的安装方式,老子不听你的” “- -!哥是传统型的,只按原始方式进行操作,如果有朋友用免xcode方式的gcc能用,还请你给我留言,也让我这山村里来的小伙接受点新“姿势”,我代表我自己谢谢你。”)command_line_tools 这个东西100MB左右,貌似需要开发者账号才能搞到,网上有自己下吧,找不到?找不到M我吧。
等你Gcc装完了,你就可以在终端里看下是否成功。
$ which gcc
/usr/bin/gcc
有输出?O了~
下面干点啥呢?可以安装mysql-python了。
还是在哪个安装包的目录下,运行如下。
#python setup.py clean
#python setup.py build
#python setup.py install
如果提示没找目录啥的,那就前面加个sodu。。还不行,那我只能说笔记本不是你的!!!
我说的方法不起作用?那你放狗继续找度娘。。我反正是可以了。
然后终端进python
#python
>>>import MySQLdb
>>>哗哗哗一片乱七八糟的东西
上述的错误得编辑另外一个JB玩意,在/Users/xxxx(xxx是你安装的目录下) 你ls -al 找一个叫.profile 隐藏的JB文件,在最后的末尾编辑追加一行,如下。
export DYLD_LIBRARY_PATH="/usr/local/mysql/lib"
保存退出,然后重新进入到python中import一下MySQLdb