我在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('\r\n', '\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上安装二进制文件的所有努力都没有奏效。我不希望o增加Macports的复杂性,所以我决定吹掉我的Enthought python并简单地使用官方的Python 2.7。我是Enthought的忠实粉丝,当我开始搞乱Python时,它是提供稳定基础的好方法。但是,正如所指出的那样,它有一些局限性。
使用Python 2.7作为我的默认设置我重新安装了pip,添加了基本功能,然后能够安装pygame,numpy,matplotlib和wxPython所需的二进制文件。所以现在我的功能再次危险 - 刚刚使用官方Python 2.7!谢谢大家。
答案 0 :(得分:4)
答案 1 :(得分:3)
问题是您需要SDL才能安装PyGame。您可能还想安装各种SDL附加软件包(字体的SDL_ttf等)。
正如Martijn Pieters所说,Pygame附带了一个Mac的二进制安装程序。我不知道它是否适用于Enthought Python,但我先尝试一下。
如果失败,SDL对Mac也有binary installer。同样,我不知道它是否适合你,但我接下来会尝试。
如果失败,我会使用Homebrew。 Homebrew(与MacPorts和Fink不同)旨在与您想要使用的任何Python安装以及Python的pip
一起使用。 (有关详细信息,请参阅here和here。)因此,请键入brew search sdl
以获取所有附加软件包的列表,然后brew install sdl sdl_foo sdl_bar etc.
进行安装。< / p>
对于您的其他问题,由于'/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7中的权限错误,您无法pip install
任何 / site-packages /`,这很简单:你没有权限写入该目录。有两种方法可以解决它:
sudo pip install foo
代替pip install foo
。sudo chmod -R a+w /Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/site-packages/
为您自己提供写入权限,因此您可以pip install foo
。 (您可能需要添加一些其他目录。)第二个非常符合Homebrew的精神(参见上面的两个链接,它们详细介绍了如何以及为什么要这样做),并且它与python.org软件包配合得很好,因为很多人都在使用它这种方式定期,但我不能保证使用Enthought包是个好主意,而我可以保证第一个。