2012-06-12 30 views
1

刚刚安装了XCode 4.3,现在无法安装mysql-python软件包。我使用的OS X Lion 10.7.4,XCode 4.3,自制软件,都是在几个小时前安装的。使用homebrew'ed蟒蛇2.7.3,MySQL的5.5.25无法使用XCode 4.3编译mysql-python 4.3/homebrew

这里是输出:

(lukasz) ~ > pip install MySQL-python 
Downloading/unpacking MySQL-python 
Running setup.py egg_info for package MySQL-python 

warning: no files found matching 'MANIFEST' 
warning: no files found matching 'ChangeLog' 
warning: no files found matching 'GPL' 
Installing collected packages: MySQL-python 
Running setup.py install for MySQL-python 
building '_mysql' extension 
/usr/bin/gcc-4.2 -fno-strict-aliasing -Os -w -pipe -march=native -Qunused-arguments -fwrapv -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Dversion_info=(1,2,3,'final',0) -D__version__=1.2.3 -I/usr/local/Cellar/mysql/5.5.25/include -I/usr/local/Cellar/python/2.7.3/include/python2.7 -c _mysql.c -o build/temp.macosx-10.4-x86_64-2.7/_mysql.o -Qunused-arguments -g 
_mysql.c:1: error: bad value (native) for -march= switch 
_mysql.c:1: error: bad value (native) for -mtune= switch 
error: command '/usr/bin/gcc-4.2' failed with exit status 1 
Complete output from command /usr/local/Cellar/python/2.7.3/bin/python -c "import setuptools;__file__='/Users/lukasz/build/MySQL-python/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /var/folders/lv/p8rbhkk559x1337twh8flq0r0000gn/T/pip-Bvu67T-record/install-record.txt: 
running install 

running build 

running build_py 

copying MySQLdb/release.py -> build/lib.macosx-10.4-x86_64-2.7/MySQLdb 

running build_ext 

building '_mysql' extension 

/usr/bin/gcc-4.2 -fno-strict-aliasing -Os -w -pipe -march=native -Qunused-arguments -fwrapv -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Dversion_info=(1,2,3,'final',0) -D__version__=1.2.3 -I/usr/local/Cellar/mysql/5.5.25/include -I/usr/local/Cellar/python/2.7.3/include/python2.7 -c _mysql.c -o build/temp.macosx-10.4-x86_64-2.7/_mysql.o -Qunused-arguments -g 

_mysql.c:1: error: bad value (native) for -march= switch 

_mysql.c:1: error: bad value (native) for -mtune= switch 

error: command '/usr/bin/gcc-4.2' failed with exit status 1 

---------------------------------------- 
Command /usr/local/Cellar/python/2.7.3/bin/python -c "import setuptools;__file__='/Users/lukasz/build/MySQL-python/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /var/folders/lv/p8rbhkk559x1337twh8flq0r0000gn/T/pip-Bvu67T-record/install-record.txt failed with error code 1 in /Users/lukasz/build/MySQL-python 
Storing complete log in /Users/lukasz/.pip/pip.log 
(lukasz) ~ > 

Mysql的用自制的安装没有问题:

(lukasz) ~ > brew info mysql 
mysql 5.5.25 
http://dev.mysql.com/doc/refman/5.5/en/ 
Depends on: cmake, readline, pidof 
/usr/local/Cellar/mysql/5.5.25 (6382 files, 222M) * 
fatal: Not a git repository (or any of the parent directories): .git 
https://github.com//homebrew/commits/master/Library/Formula/mysql.rb 

有没有一种办法手动修改三月标志?

UPDATE:

哦,我还安装了命令行工具(Xcode中 - >设置 - >下载),这显然是GCC-4.2创建链接:

(lukasz) ~ > which gcc-4.2 
/usr/bin/gcc-4.2 
(lukasz) ~ > ls -l `which gcc-4.2` 
lrwxr-xr-x 1 root wheel 12 12 Jun 01:36 /usr/bin/gcc-4.2 -> /usr/bin/gcc 
(lukasz) ~ > gcc-4.2 --version 
i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00) 
... 
+0

Xcode 4.3不提供'gcc-4.2',因此您似乎正在使用从其他源安装的编译器。 gcc-4.2 --version是什么意思? –

+0

@NedDeily,好像命令行工具创建的链接(的Xcode>首选项>下载...) (卢卡斯) - >这GCC-4.2 /usr/bin/gcc-4.2 (卢卡斯) - > LS -l'其中gcc-4.2' lrwxr-xr-x 1个根轮12 12 6月01:36 /usr/bin/gcc-4.2->/usr/bin/gcc (lukasz)〜> gcc-4.2 - 版本 i686-apple-darwin11-llvm-gcc-4.2(GCC)4.2.1(基于Apple Inc. build 5658)(LLVM build 2336.9.00) ... – lukaszb

+0

据我所知,Apple的命令行工具不要为gcc-4.2安装一个符号链接(我刚刚证实,刚才发布的Xcode 4.3.3及其命令行工具没有改变)。但是它所链接的llvm-gcc是最新的Apple gcc。所以这不是问题。这些标志通常不适用于任何Apple编译器;他们通常使用'-arch'。这可能是由一个杂散的环境变量设置注入的,如CFLAGS或LDFLAGS。另外,通过运行mysql_config来检查mysql配置中记录的内容; MySQL-python着眼于它。 –

回答

1

这可能会有些偏离主题,但如果最终你将无法编译MySQL-python,则可以尝试PyMySQL这是纯粹的Python mysql客户端,可以替代MySQL-python。它工作得很快。