简体   繁体   English

无法在 mac 上使用 easy_install 或 pip 安装

[英]Unable to Install with easy_install or pip on mac

I'm trying to install lxml and pycrypto modules using easy_install (and pip) but getting error messages like我正在尝试使用 easy_install (和 pip)安装 lxml 和 pycrypto 模块,但收到错误消息,例如

Running lxml-2.3.4/setup.py -q bdist_egg --dist-dir /tmp/easy_install-kGsWMh/lxml-2.3.4/egg-dist-tmp-Gjqy3f
Building lxml version 2.3.4.
Building without Cython.
Using build configuration of libxslt 1.1.24
In file included from /usr/include/limits.h:63,
                 from /Developer/usr/bin/../lib/gcc/powerpc-apple-darwin10/4.0.1/include/limits.h:10,
                 from /Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/Python.h:19,
                 from src/lxml/lxml.etree.c:4:
/usr/include/sys/cdefs.h:540:4: error: #error Unknown architecture
In file included from /usr/include/limits.h:64,
                 from /Developer/usr/bin/../lib/gcc/powerpc-apple-darwin10/4.0.1/include/limits.h:10,
                 from /Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/Python.h:19,
                 from src/lxml/lxml.etree.c:4:
/usr/include/machine/limits.h:10:2: error: #error architecture not supported
In file included from /usr/include/sys/_types.h:33,
                 from /usr/include/_types.h:27,
                 from /usr/include/stdio.h:67,
                 from /Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/Python.h:33,
                 from src/lxml/lxml.etree.c:4:
/usr/include/machine/_types.h:36:2: error: #error architecture not supported
In file included from /usr/include/_types.h:27,
                 from /usr/include/stdio.h:67,
                 from /Library/Frameworks/Python.framework/Versions/2.6/include/python2.6/Python.h:33,
                 from src/lxml/lxml.etree.c:4:
/usr/include/sys/_types.h:94: error: syntax error before ‘__darwin_blkcnt_t’
    src/lxml/lxml.etree.c:165640: error: syntax error before ‘val’
    src/lxml/lxml.etree.c:165645: error: syntax error before ‘val’

bla bla .布拉布拉。 . . . .

src/lxml/lxml.etree.c:165645: error: syntax error before ‘val’

lipo: can't figure out the architecture type of: /var/folders/f3/2q2x2p015kzgd4nbrn_qwykh0000gn/T//cc1pnrww.out

error: command 'gcc-4.0' failed with exit status 1

I'm getting similar syntax errors when I try to install pycrypto as well.当我尝试安装 pycrypto 时,我也遇到了类似的语法错误。 I tried this answer but in vain.我尝试了这个答案,但徒劳无功。 I tried setting up for python 2.6 and 2.7 environments using setuptools-0.6c11-py2.6.egg and setuptools-0.6c11-py2.7.egg but getting the same output.我尝试使用 setuptools-0.6c11-py2.6.egg 和 setuptools-0.6c11-py2.7.egg 设置 python 2.6 和 2.7 环境,但得到相同的输出。

I searched a lot online but cant find solution for this.我在网上搜索了很多,但找不到解决方案。

EDIT: I'm on OSX 10.7 on macbook pro 2010, and have XCode 4 and 3 installed编辑:我在 macbook pro 2010 上使用 OSX 10.7,并安装了 XCode 4 和 3

I'd args with replaced with the latest version while trying the commands in the link above.在尝试上面链接中的命令时,我会将 args 替换为最新版本。

python setup.py build --static-deps --libxml2-version=2.7.8  --libxslt-version=1.1.26 
sudo python setup.py install

I read on someother post and tried this as well我在其他帖子上阅读并尝试了这个

STATIC_DEPS=true sudo easy_install --allow-hosts=lxml.de,*.python.org lxml

Solution:解决方案:

As @jdi suggested I did the following正如@jdi 建议的那样,我做了以下事情

$ brew install --use-llvm libxml2
$ brew install --use-llvm libxslt

Installed gcc from link , since I was still facing issues with option 1 and 2 suggested链接安装 gcc ,因为我仍然面临建议的选项 1 和 2 的问题

Then, either this那么,无论是这个

$ export ARCHFLAGS="-arch i386 -arch x86_64"
$ /usr/bin/python2.6 setup.py build
$ sudo /usr/bin/python2.6 setup.py install

Or this, will work或者这个,会工作

$ sudo env ARCHFLAGS="-arch i386 -arch x86_64" easy_install-2.6 lxml

Same worked for pycrypto as well同样适用于 pycrypto

This right here is an indication that you are building it improperly: /Developer/usr/bin/../lib/gcc/powerpc-apple-darwin10 , unless of course you are on an old powerpc machine.这表明您构建它的方式不正确: /Developer/usr/bin/../lib/gcc/powerpc-apple-darwin10 ,当然除非您使用的是旧的 powerpc 机器。

Check the version of OSX you are running, and the commands you are using to build lxml.检查您正在运行的 OSX 版本,以及您用于构建 lxml 的命令。 Chances are you might need to set export ARCHFLAGS="-arch i386 -arch x86_64" in your shell before building, in order to avoid it building with ppc .您可能需要在构建之前在 shell 中设置export ARCHFLAGS="-arch i386 -arch x86_64" ,以避免使用ppc构建它。 Not sure why you are getting an old arch.不知道为什么你会得到一个旧的拱门。

Also, make sure you have the latest Xcode installed.另外,请确保您安装了最新的 Xcode。 And, if you are following that link you posted, word for word, make sure you are using the most recent versions of those packages and not the literal versions as that link is 3 years old.而且,如果您逐字逐句地跟踪您发布的链接,请确保您使用的是这些软件包的最新版本,而不是文字版本,因为该链接已有 3 年历史。

If all else fails, install homebrew and install it through that package manager.如果一切都失败了,请安装自制软件并通过该软件包管理器安装它。

Update: Options for lack of GCC 4.2 after XCode 4.2+ update更新: XCode 4.2+ 更新后缺少 GCC 4.2 的选项

Pick one选一个

  1. Install gcc 4.2 using this simple guide:使用这个简单的指南安装 gcc 4.2:
    http://caiustheory.com/install-gcc-421-apple-build-56663-with-xcode-42 http://caiustheory.com/install-gcc-421-apple-build-56663-with-xcode-42

  2. Use homebrew to install it:使用自制软件安装它:

    brew tap homebrew/dupes
    brew install homebrew/dupes/apple-gcc42

  3. Completely ignore gcc and use llvm with brew完全忽略 gcc 并将 llvm 与 brew 一起使用

    brew install --use-llvm libxml2

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM