Проблемы с тем, чтобы pygame отображал что-либо, кроме пустого экрана на Macos

Я недавно купил новый макбук и бесконечно пытался заставить 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.

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

Jan 09.10.2018 12:42

Возможно, дисплей нового MacBook не работает при разрешении 800x600; попробуйте другое разрешение. (@Jan: Мне любопытно, как может помочь снимок экрана с пустым экраном. Но я думаю, это стоит того.)

Jongware 09.10.2018 13:36

@ usr2564301 Я не был уверен, загружается ли вообще что-нибудь. но если да, то мы с этим разобрались;)

Jan 09.10.2018 13:39

ну показывает красный экран. Вы чего-то ждете? (проверено на macbook air - 10.11.6)

Feelsbadman 09.10.2018 13:41

Я пишу сценарий в Sublime Text и запускаю программу в Терминале. Скриншот: i.stack.imgur.com/0QVv6.png. Я изменил размер окна на 1000x1000, но, к сожалению, это не имело никакого значения.

Boudewijn Maas 10.10.2018 07:40
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
34
5
22 720
10
Перейти к ответу Данный вопрос помечен как решенный

Ответы 10

Отредактируйте с помощью рабочего обходного пути: см. нижнюю часть сообщения


У меня такая же проблема на MacBook Pro (дисплей Retina) с python3.7 и MacOs Mojave. Для простоты я провел все свои тесты с вашим точно таким же кодом и pygame 1.9.4.

На (двух) компьютерах с Windows программа работает и показывает красное окно на:

  • python2.7
  • python3.6
  • python3.7

Следовательно, это не похоже на проблему версии Python, я склоняюсь к проблеме MacOS Mojave.

Мохаве представил «темный режим», который автоматически тонирует окна. Когда темный режим отключен, у меня пустой экран. Когда он включен, у меня темный экран. Может быть, MacOS берет на себя управление отображением экрана и возится с тем, как pygame управляет экраном? Это всего лишь теория, но я не знаю, как ее проверить.


Редактировать: Я попробовал программу pygame, которая записывает и печатает положение экрана, на котором вы щелкнули. Он выводит позицию в консоль, но, увы, ничего не отображает. Если не считать неисправного дисплея, pygame вроде работает нормально.


Редактировать: На данный момент использование версии Python из миниконда и использование Pygame CogSci, похоже, работает.

Ответ принят как подходящий

Я попытался обновить свой старый macbook до OS Mojave, чтобы посмотреть, перестанет ли pygame работать, и это произошло!

Думаю, Mojave несовместим с pygame (пока).

Спасибо за помощь!

Ответ от @ BeatBreaker82 исправил его на Мохаве для меня

cookiedough 25.01.2020 22:22

ПОСЛЕДНЕЕ ОБНОВЛЕНИЕ для 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

Спасибо за руководство. Это мне только помогло.

Michael Welch 15.03.2019 02:39

Для ясности: загрузка последней версии Python с официального сайта будет работать. Python 3 от Homebrew, похоже, пока не решает эту проблему.

glhrmv 28.03.2019 00:00

Попробовали Python 3.7.3 сформировать их Официальный веб-сайт с третьей итерацией Mojave (MacOS 10.14.3) и pygame 1.9.4, здесь нет никакой радости: / Я пробовал 3.7.2 раньше на macOS 10.14.1 без какого-либо лучшего результата . Кто-нибудь еще смог заставить его работать?

Attila 05.04.2019 00:53

Я столкнулся с этой проблемой в следующей среде: 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 .... :(

Marin 12.02.2019 03:19

У меня была такая же проблема, заставил ее работать, понизив версию 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 из исходников »).

1. Найдите последнюю стабильную версию.

Перейдите на страницу PyGame на GitHub здесь:

Как видите, на момент написания последней стабильной версии является 1.9.6, поэтому мы оставим это имя тега на будущее.

2. Установите PyGame на macOS из исходников.

  1. Установите некоторые зависимости brew install sdl2 sdl2_gfx sdl2_image sdl2_mixer sdl2_net sdl2_ttf. Для этого требуется домашнее пиво.
  2. Перейдите к 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.
  3. Удалите любую предыдущую pygame, pip uninstall pygame (если в pygame существует каталог site-packages, удалите его: rm -rf pygame*)
  4. Клонируйте PyGame с GitHub:
    • 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 - это имя тега последней стабильной версии, на момент написания см. «Найти последнюю стабильную версию версии выше»)
  5. Перейдите в только что клонированный каталог pygame: cd pygame.
  6. Запустите python setup.py --config --auto --sdl2.
    • Если у вас возникли проблемы с этой командой, некоторые пользователи ниже упомянули, что для них работают одиночные дефисы, поэтому попробуйте: python setup.py -config -auto -sdl2.
    • Если у вас возникнут проблемы с Python2 / 3 и вы нацеливаетесь на Python3, попробуйте заменить python setup.py --config --auto --sdl2 на python3 setup.py --config --auto --sdl2.
  7. Запустите python setup.py install (это займет некоторое время).
    • Если у вас возникнут проблемы с Python2 / 3 и вы нацеливаетесь на Python3, попробуйте заменить python setup.py --config --auto --sdl2 на python3 setup.py --config --auto --sdl2.

Теперь PyGame должен работать должным образом на macOS.

Большое спасибо! Это сводило меня с ума ... но сработало именно так, как вы описали. (Каталина, Python 3.7.5 (pyenv), pygame 2.0.0)

rhedak 22.12.2019 04:30

При запуске 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

ChumiestBucket 24.12.2019 17:25

на моем OSX (10.15.2) я должен использовать: python setup.py -config -auto -sdl2。 Для получения подробной информации, пожалуйста. см .: pygame.org/wiki/MacCompile

Liang Lyon 02.01.2020 05:39

Мне пришлось использовать отдельные дефисы, например @LiangLyon, но большое спасибо Рафаэлю за исправление.

shane 16.02.2020 18:01

при запуске 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

ChumiestBucket 18.03.2020 18:54

Мне пришлось использовать python3 setup.py -config .auto -sdl2 и python3 setup.py install bc, он каждый раз выдавал ошибку при использовании python

andre 12.04.2020 13:28

Спасибо @andre за ваш отзыв. Я дополню ответ вашим мнением, чтобы другие люди сочли его полезным!

Rafael 12.04.2020 13:39

Я считаю, что теперь доступно более простое исправление, просто используя pip для установки pygame 20.0.0.dev4 (который, как я полагаю, скоро будет заменен)

GregD 19.04.2020 20:15

Я столкнулся с этой проблемой, используя 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, я не особо разбираюсь в версии (при условии, что она хотя бы умеренно стабильна).

Daniel 'Dang' Griffith 27.04.2020 03:01

Я использую Pygame 2.0.0.dev6 уже пару месяцев, и - даже несмотря на то, что это еще не официальный выпуск - он ведет себя очень стабильно для меня.

mario 28.04.2020 14:36

В моем случае да, обновление до Pygame 2 устраняет проблему с пустым экраном ... за исключением того, что, похоже, есть ключевые различия в обработке событий между Pygame 1 и Pygame2. Мой код больше не работает!

Jacob Lee 25.03.2021 23:18

Некоторым Mac нужны обновления. Если вы перейдете к системным настройкам и перейдете к обновлениям программного обеспечения, вы можете попробовать выполнить обновление, чтобы узнать, нужны ли ему какие-либо обновления. При обновлении вы можете проверить, работает ли ваш код сейчас, потому что похоже, что ваш код правильный.

Я пробовал все, но ничего не получалось, кроме этого:

pip install git+https://github.com/pygame/pygame.git

Это установит подсказки pygame. У меня это сработало. Попробуйте.

у меня это сработало! Спасибо! Получилось следующее: pygame 2.0.0.dev7 (SDL 2.0.12, python 3.7.7)

Weiming 18.04.2020 02:37

Я тоже сталкиваюсь с этой проблемой на macOS Catalina. На самом деле это проблема версии pygame. Сначала я установил следующую команду:

pip3 install pygame

Показывался только пустой экран. Но позже я изменил версию с помощью следующей команды:

pip3 install pygame==2.0.0.dev4

С этой версией моя проблема была решена. Он работал отлично.

Другие вопросы по теме