Я недавно купил новый макбук и бесконечно пытался заставить pygame работать, но пока безуспешно. Я в отчаянии, и мне действительно нужна помощь.
Я установил pygame 1.9.4, и хотя я не получаю сообщений об ошибках при запуске кода pygame, он не показывает мне ничего, кроме пустого экрана. Я использую следующий код для проверки:
import pygame
pygame.init()
screen = pygame.display.set_mode((800,600))
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
quit()
screen.fill((255,0,0))
pygame.display.update()
pygame.quit()
На моем старом MacBook тестовый код дает мне красный экран, как и ожидалось. Оба MacBook работают под управлением python 2.7.10.
Кто-нибудь знает, что я делаю не так? Думаю, я установил pygame точно так же, как и на свой старый MacBook, и единственная разница, похоже, заключается в операционной системе.
редактировать 1: Я пишу сценарий в Sublime Text и запускаю программу в Терминале. Скриншот
редактировать 2: Я снова заработал pygame, понизив мою операционную систему до macOS High Sierra.
Возможно, дисплей нового MacBook не работает при разрешении 800x600; попробуйте другое разрешение. (@Jan: Мне любопытно, как может помочь снимок экрана с пустым экраном. Но я думаю, это стоит того.)
@ usr2564301 Я не был уверен, загружается ли вообще что-нибудь. но если да, то мы с этим разобрались;)
ну показывает красный экран. Вы чего-то ждете? (проверено на macbook air - 10.11.6)
Я пишу сценарий в Sublime Text и запускаю программу в Терминале. Скриншот: i.stack.imgur.com/0QVv6.png. Я изменил размер окна на 1000x1000, но, к сожалению, это не имело никакого значения.

Отредактируйте с помощью рабочего обходного пути: см. нижнюю часть сообщения
У меня такая же проблема на MacBook Pro (дисплей Retina) с python3.7 и MacOs Mojave.
Для простоты я провел все свои тесты с вашим точно таким же кодом и pygame 1.9.4.
На (двух) компьютерах с Windows программа работает и показывает красное окно на:
python2.7python3.6python3.7Следовательно, это не похоже на проблему версии Python, я склоняюсь к проблеме MacOS Mojave.
Мохаве представил «темный режим», который автоматически тонирует окна. Когда темный режим отключен, у меня пустой экран. Когда он включен, у меня темный экран. Может быть, MacOS берет на себя управление отображением экрана и возится с тем, как pygame управляет экраном? Это всего лишь теория, но я не знаю, как ее проверить.
Редактировать:
Я попробовал программу pygame, которая записывает и печатает положение экрана, на котором вы щелкнули. Он выводит позицию в консоль, но, увы, ничего не отображает.
Если не считать неисправного дисплея, pygame вроде работает нормально.
Редактировать: На данный момент использование версии Python из миниконда и использование Pygame CogSci, похоже, работает.
Я попытался обновить свой старый macbook до OS Mojave, чтобы посмотреть, перестанет ли pygame работать, и это произошло!
Думаю, Mojave несовместим с pygame (пока).
Спасибо за помощь!
Ответ от @ BeatBreaker82 исправил его на Мохаве для меня
ПОСЛЕДНЕЕ ОБНОВЛЕНИЕ для MacOS 10.14.1
Если вы загрузите официальный установочный пакет macOS x64 для Python 3.7.2 с официальной страницы python.org и наберете pip3 install pygame, он будет работать.
Возникла проблема с MacOS. Это должно быть возможно исправить в SDL.
Проблема с pygame здесь: https://github.com/pygame/pygame/issues/555
Проблема с домашним пивом здесь: https://github.com/Homebrew/homebrew-core/issues/33016
Спасибо за руководство. Это мне только помогло.
Для ясности: загрузка последней версии Python с официального сайта будет работать. Python 3 от Homebrew, похоже, пока не решает эту проблему.
Попробовали Python 3.7.3 сформировать их Официальный веб-сайт с третьей итерацией Mojave (MacOS 10.14.3) и pygame 1.9.4, здесь нет никакой радости: / Я пробовал 3.7.2 раньше на macOS 10.14.1 без какого-либо лучшего результата . Кто-нибудь еще смог заставить его работать?
Я столкнулся с этой проблемой в следующей среде: Python 3.7, Mojave 10.14.2, Pygame 1.9.4.
Я обнаружил, что переход на Python 3.6 устраняет проблему
$ brew unlink python
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb
Это должно исправить это, если у вас возникла проблема с циклической зависимостью, вы должны запустить:
$ brew install --ignore-dependencies https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb
Подробности на https://apple.stackexchange.com/questions/329187/homebrew-rollback-from-python-3-7-to-python-3-6-5-x
Как бы вы исправили это в 2.7, если хотите и дальше пользоваться этим? это только для 3.6 .... :(
У меня была такая же проблема, заставил ее работать, понизив версию python до 3.6.5.
> brew unlink python brew install --ignore-dependencies
> https://raw.githubusercontent.com/Homebrew/homebrew-core/f2a764ef944b1080be64bd88dca9a1d80130c558/Formula/python.rb
> brew switch python 3.6.5_1 pip3 install pygame
Если у вас уже установлен python 3.6.5, я думаю, вы можете просто использовать переключатель.
Протестировано и работает на macOS 10.15 Catalina, Python 3.7.5, PyGame 2.0.0 (предварительная версия на момент написания) и PyGame 1.9.6 (стабильная на момент написания).
Первоначально вам нужно решить, хотите ли вы стабильную версию или предварительную версию (нестабильную). Если вы решите использовать последнюю версию (и, возможно, предварительную / нестабильную версию), просто проигнорируйте первый шаг («1. Найдите последнюю стабильную версию выпуска») и используйте ветвь master на шаге 4 второго шага («2. Установите PyGame из исходников »).
Перейдите на страницу PyGame на GitHub здесь:
Как видите, на момент написания последней стабильной версии является 1.9.6, поэтому мы оставим это имя тега на будущее.
brew install sdl2 sdl2_gfx sdl2_image sdl2_mixer sdl2_net sdl2_ttf. Для этого требуется домашнее пиво.site-packages:
cd ~/.virtualenvs/myvirtualenv/lib/python3.X/site-packages, где ~/.virtualenvs/myvirtualenv - это путь к вашей виртуальной среде, а python3.X - это версия вашего Python./usr/local/lib/python3.X/site-packages, где python3.X - это версия вашего Python.pip uninstall pygame (если в pygame существует каталог site-packages, удалите его: rm -rf pygame*)git clone https://github.com/pygame/pygame.git для последней (возможно, нестабильной версии).git clone -b 1.9.6 https://github.com/pygame/pygame.git --single-branch для последней версии (1.9.6 - это имя тега последней стабильной версии, на момент написания см. «Найти последнюю стабильную версию версии выше»)pygame: cd pygame.python setup.py --config --auto --sdl2.
python setup.py -config -auto -sdl2.python setup.py --config --auto --sdl2 на python3 setup.py --config --auto --sdl2.python setup.py install (это займет некоторое время).
python setup.py --config --auto --sdl2 на python3 setup.py --config --auto --sdl2.Теперь PyGame должен работать должным образом на macOS.
Большое спасибо! Это сводило меня с ума ... но сработало именно так, как вы описали. (Каталина, Python 3.7.5 (pyenv), pygame 2.0.0)
При запуске python setup.py -config -auto -sdl2 я получаю ошибку sh: pkg-config: command not found, затем WARNING: "pkg-config freetype2" failed!. Я установил pkg-config с homebrew, но потом наткнулся на WARNING, No "Setup" File Exists
на моем OSX (10.15.2) я должен использовать: python setup.py -config -auto -sdl2。 Для получения подробной информации, пожалуйста. см .: pygame.org/wiki/MacCompile
Мне пришлось использовать отдельные дефисы, например @LiangLyon, но большое спасибо Рафаэлю за исправление.
при запуске python3 setup.py -config -auto -sdl2 я получаю ошибку WARNING, No "Setup" File Exists, Running "buildconfig/config.py" Using Darwin configuration... /bin/sh: pkg-config: command not found /bin/sh: pkg-config: command not found /bin/sh: pkg-config: command not found
Мне пришлось использовать python3 setup.py -config .auto -sdl2 и python3 setup.py install bc, он каждый раз выдавал ошибку при использовании python
Спасибо @andre за ваш отзыв. Я дополню ответ вашим мнением, чтобы другие люди сочли его полезным!
Я считаю, что теперь доступно более простое исправление, просто используя pip для установки pygame 20.0.0.dev4 (который, как я полагаю, скоро будет заменен)
Я столкнулся с этой проблемой, используя macOS Catalina версии 10.15.2, Python 3.7.2 и pygame 1.9.6. Я обновился до Python 3.8.1, Pygame 2.0.0.dev6, и теперь он работает должным образом.
Спасибо - я тоже использую Catalina 10.15.2 и не хочу понижать версию своего Python. Поскольку я только изучаю PyGame, я не особо разбираюсь в версии (при условии, что она хотя бы умеренно стабильна).
Я использую Pygame 2.0.0.dev6 уже пару месяцев, и - даже несмотря на то, что это еще не официальный выпуск - он ведет себя очень стабильно для меня.
В моем случае да, обновление до Pygame 2 устраняет проблему с пустым экраном ... за исключением того, что, похоже, есть ключевые различия в обработке событий между Pygame 1 и Pygame2. Мой код больше не работает!
Некоторым Mac нужны обновления. Если вы перейдете к системным настройкам и перейдете к обновлениям программного обеспечения, вы можете попробовать выполнить обновление, чтобы узнать, нужны ли ему какие-либо обновления. При обновлении вы можете проверить, работает ли ваш код сейчас, потому что похоже, что ваш код правильный.
Я пробовал все, но ничего не получалось, кроме этого:
pip install git+https://github.com/pygame/pygame.git
Это установит подсказки pygame. У меня это сработало. Попробуйте.
у меня это сработало! Спасибо! Получилось следующее: pygame 2.0.0.dev7 (SDL 2.0.12, python 3.7.7)
Я тоже сталкиваюсь с этой проблемой на macOS Catalina. На самом деле это проблема версии pygame. Сначала я установил следующую команду:
pip3 install pygame
Показывался только пустой экран. Но позже я изменил версию с помощью следующей команды:
pip3 install pygame==2.0.0.dev4
С этой версией моя проблема была решена. Он работал отлично.
вы можете выполнить это из окна консоли? Также было бы полезно добавить снимок экрана с тем, что вы действительно получаете и как вы называете эту программу. Также проверьте этот руководство, как задавать хорошие вопросы.