点子安装不正确



我在Mac上运行并使用Enthought python,我已经安装了PIP,但在安装软件包时遇到困难。

当我尝试安装 Pygame 时,软件包正在下载并开始构建,但随后出现错误。 我意识到 Pygame 是一个相对复杂的软件包,但我在更简单的软件包中遇到了类似的问题。 因为我认为这可能与我安装的 Python 有关,所以我在最后显示了我的 env 变量。 任何帮助将不胜感激

跟踪如下所示:

running build_ext
building 'pygame._numericsurfarray' extension
creating build/temp.macosx-10.5-i386-2.7
creating build/temp.macosx-10.5-i386-2.7/src
gcc -fno-strict-aliasing -fno-common -dynamic -arch i386 -DNDEBUG -g -O3 -arch i386 -I/NEED_INC_PATH_FIX -I/Library/Frameworks/Python.framework/Versions/7.3/include/python2.7 -c src/_numericsurfarray.c -o build/temp.macosx-10.5-i386-2.7/src/_numericsurfarray.o
In file included from src/_numericsurfarray.c:23:
src/pygame.h:106:17: error: SDL.h: No such file or directory
In file included from src/_numericsurfarray.c:23:
src/pygame.h:350: error: expected specifier-qualifier-list before ‘SDL_VideoInfo’
src/pygame.h:388: error: expected specifier-qualifier-list before ‘SDL_Surface’
src/_numericsurfarray.c:26:27: error: SDL_byteorder.h: No such file or directory
....
....
...
....
src/_numericsurfarray.c:1097: error: expected declaration specifiers or ‘...’ before ‘SDL_Surface’
error: command 'gcc' failed with exit status 1

Command /Library/Frameworks/Python.framework/Versions/7.3/Resources/Python.app/Contents/MacOS/Python -c "import setuptools;__file__='/var/folders/9m/qcp8h8ss4ng1v8429jvnkkrc0000gn/T/pip-build/pygame/setup.py';exec(compile(open(__file__).read().replace('rn', 'n'), __file__, 'exec'))" install --record /var/folders/9m/qcp8h8ss4ng1v8429jvnkkrc0000gn/T/pip-roxs9O-record/install-record.txt --single-version-externally-managed failed with error code 1 in /var/folders/9m/qcp8h8ss4ng1v8429jvnkkrc0000gn/T/pip-build/pygame
Storing complete log in /Users/jc_macpro/.pip/pip.log

我的环境变量是:

TERM_PROGRAM=Apple_Terminal
TERM=xterm-256color
SHELL=/bin/bash
TMPDIR=/var/folders/9m/qcp8h8ss4ng1v8429jvnkkrc0000gn/T/
Apple_PubSub_Socket_Render=/tmp/launch-iwuiuZ/Render
TERM_PROGRAM_VERSION=309
TERM_SESSION_ID=FDC661E1-1196-448F-8D69-28AD9D7C496B
USER=jc_macpro
COMMAND_MODE=unix2003
SSH_AUTH_SOCK=/tmp/launch-pH83z9/Listeners
__CF_USER_TEXT_ENCODING=0x1F5:0:0
Apple_Ubiquity_Message=/tmp/launch-s4tuBY/Apple_Ubiquity_Message
PATH=/Library/Frameworks/Python.framework/Versions/Current/bin:/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
PWD=/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages
LANG=en_US.UTF-8
SHLVL=1
HOME=/Users/jc_macpro
LOGNAME=jc_macpro
SECURITYSESSIONID=186a4
_=/usr/bin/env
OLDPWD=/Library/Frameworks/Python.framework/Versions/Current/bin

我将不胜感激任何帮助。

更新: 12/22/12 我已经筛选了所有的建议和反馈,非常感谢这一切。 在Enthought上安装二进制文件的所有努力都没有奏效。 我不想增加Macports的复杂性,所以我决定吹掉我的Enthought python,只使用官方的Python 2.7。 我是Enthought的忠实粉丝,当我开始使用Python时,这是提供稳定基础的好方法。 但是,正如所指出的,它有一些局限性。

使用 Python 2.7 作为我的默认值,我重新安装了 pip,添加了基本功能,然后能够安装 pygame、numpy、matplotlib 和 wxPython 所需的二进制文件。 所以现在我运行并且再次危险 - 刚刚使用官方 Python 2.7!! 谢谢大家。

您缺少依赖项 SDL。

如果您安装了 macports,请使用它来安装libsdl

或者更好的是,下载 Mac 版 Pygame 二进制文件;它在安装程序中包含 SDL 库。

问题是您需要 SDL 来安装 PyGame。您可能还希望安装各种 SDL 附加包(SDL_ttf字体等)。

正如Martijn Pieters所建议的那样,Pygame带有Mac的二进制安装程序。我不知道它是否适用于Enthought Python,但我会先尝试一下。

如果失败,SDL 还具有适用于 Mac 的二进制安装程序。同样,我不知道它是否适合您,但接下来我会尝试一下。

如果失败了,我会使用自制软件。Homebrew(与MacPorts和Fink不同)旨在与任何你想使用的Python安装以及Python的pip很好地配合使用。(有关详细信息,请参阅此处和此处。因此,键入brew search sdl以获取所有附加包的列表,然后brew install sdl sdl_foo sdl_bar etc.安装它们。

对于您的其他问题,由于"/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/"中的权限错误,您无法pip install任何内容,这是一个简单的问题:您没有写入该目录的权限。有两种方法可以修复它:

  1. 使用sudo pip install foo而不是pip install foo
  2. 使用sudo chmod -R a+w /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/授予自己写入访问权限,以便您可以pip install foo.(您可能需要添加一些其他目录。

第二个非常符合Homebrew的精神(请参阅上面的两个链接,其中详细介绍了如何以及为什么这样做),它与 python.org 包配合得很好,因为许多人经常以这种方式使用它,但我不能保证Enthought包是一个好主意, 虽然我可以保证第一个。

最新更新