2014-02-28 1 views
0

Я хотел бы начать с того, что задавать вопрос здесь не то, что я делаю легкомысленно. Теперь я пытаюсь установить Pygame 1.9.1 из источника в течение четырех часов, и у меня возникли проблемы, но я смог преодолеть каждый из них. Это первый, на котором я полностью в тупике.Компиляция Pygame 1.9.1 из источника на Mac OSX 10.9 для Python 3.3

После того как я распаковать Pygame-1.9.1release.tar.gz и компакт-диск в папку, я бегу «python3 setup.py установить»

/Library/Frameworks/SDL.framework/Versions/Current/Headers/SDL_syswm.h:58:10: fatal error: 'X11/Xlib.h' file not found 
#include <X11/Xlib.h> 
1 error generated. 
error: command '/usr/bin/clang' failed with exit status 1 

После некоторых онлайн-исследований, я прочитал, что X11 больше не включен в OSX 10.9, поэтому я установил XQuartz в надежде, что он может служить заменой.

Xquartz содержит 'Xlib.h', но это путь к файлу /opt/X11/include/X11/Xlib.h, и скрипт установки не находит его здесь. Я пробовал несколько способов исправить это.

Процесс ошибки определенно возникает в части сборки установки. Я попытался с помощью

python3 setup.py config --include-dirs /opt/X11/include 

, а также

python3 setup.py config --include-dirs /opt/X11/include/X11 

, но получить ту же ошибку.

Я читал онлайн, что установка инструментов командной строки Xcode может решить эту проблему. Я ~ 95% уверен, что раньше у меня были инструменты командной строки, но я все равно пытался их снова получить с помощью «xcode-select -install», чтобы сказать, что «Не удается установить программное обеспечение, потому что в настоящее время он недоступен сервер обновления программного обеспечения ». «Нет проблем», - говорю я себе и просто загружаю пакет с сайта разработчиков Mac. Это ничего не помогает.

Я также попытался символическую ссылку с помощью команды

sudo ln -s /usr/include/X11 /opt/X11/include/X11 

Из всего, что я пытался, я понимаю, это как минимум, я мог бы очень хорошо делать команду символьной ссылки неправильно.

Две другие команды я попытался это

export C_INCLUDE_PATH=/opt/X11/include 
export CPLUS_INCLUDE_PATH=/opt/X11/include 

Просто глядя на документацию, я наткнулся на вариант отладки для сценария запуска. Выход «Python3 setup.py построения -g» является

running build 
running build_py 
running build_ext 
building 'pygame.display' extension 
/usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -arch i386 -arch x86_64 -g -g -Ddarwin -I/Library/Frameworks/SDL.framework/Versions/Current/Headers -I/Library/Frameworks/Python.framework/Versions/3.3/include/python3.3m -c src/display.c -o build/temp.macosx-10.6-intel-3.3/src/display.o 
In file included from src/display.c:30: 
/Library/Frameworks/SDL.framework/Versions/Current/Headers/SDL_syswm.h:58:10: fatal error: 'X11/Xlib.h' file not found 
#include <X11/Xlib.h> 
     ^
1 error generated. 
error: command '/usr/bin/clang' failed with exit status 1 

Я не уверен, что еще я могу сделать, но я бы очень признателен за помощь в этом. Заранее спасибо!

+0

Я возьму удар .. (YMMV это предположение) экспорт INCLUDE = $ INCLUDE:/OPT/X11/включить/X11 –

+0

Спасибо за попытку, но не повезло после этой команды. (Такая же ошибка) – Alec

ответ

0

setup.py build|install команды принимают CFLAGS и LDFLAGS параметры компилятора, насколько мне известно.

Таким образом, здесь, вы можете сделать

CFLAGS=-I/opt/X11/include python3 setup.py install 

Вы, вероятно, понадобится LDFLAGS, а также; Я не уверен в точном расположении, но что-то вроде

CFLAGS=-I/opt/X11/include LDFLAGS=-L/opt/X11/lib python3 setup.py install 

кажется логичным.

После этого вам может потребоваться установить DYLD_LIBRARY_PATH, чтобы указать на ваши библиотеки X11. В случае, если ваша установка продолжается, но ваш сценарий PyGame не запускается и жалуется на то, что не найдет библиотеки X11. Таким образом

export DYLD_LIBRARY_PATH=/opt/X11/lib 

Что касается символической ссылки вы пытались создать: это неправильный путь «вокруг: два пути должны были включены, так что я предполагаю, что вы получили сообщение об ошибке, потому что /opt/X11/include/X11 уже существует. Но с вышесказанным, никакой символической ссылки не требуется.

1

Я столкнулся с подобной ошибкой при попытке установить pygame в мой проект PyCharm virtualenv. Я решил ее cd ING в каталог SDL Framework, где возникла ошибка и копирование файлов заголовков X11 в него:

$ cd /Library/Frameworks/SDL.framework/Versions/Current/Headers 
$ cp -R /opt/X11/include/X11 ./ 

затем $ pip install pygame создалась без ошибок.

Смежные вопросы