Проблема, с которой вы столкнулись, вероятно, связана с тем, как PyInstaller обрабатывает запуск GUI приложений и особенности работы Python на Mac OS, особенно для архитектуры ARM (Apple Silicon).
Вот несколько возможных причин и решений, чтобы устранить проблему:
### 1. Отсутствие обработки сигналов
Иногда программы, собранные с помощью PyInstaller, могут вести себя непредсказуемо, если не обработать сигналы или если они перезапускаются. В вашем коде можно попробовать добавить отладочный вывод, чтобы увидеть, что именно происходит при каждом запуске программы. Например:
```python
import os
import sys
from PIL import Image
from requests import get
from urllib.request import urlopen
def main():
print("Запуск программы, PID:", os.getpid())
keys = {'api_key': "ceNbEX2ezPD90Ruezh8g2rUtlb12sSnC6G18jzlu"}
nasa = get('https://api.nasa.gov/planetary/apod?api_key=' + keys['api_key'])
nlist = nasa.json()
url = nlist['url']
print("URL изображения:", url)
image = Image.open(urlopen(url))
image.show()
image.close()
if __name__ == '__main__':
if hasattr(sys, 'frozen'):
print("Программа собрана в exe.")
main()
```
### 2. Проблемы с библиотеками
Некоторые библиотеки, такие как `PIL`, могут иметь проблемы совместимости. Убедитесь, что у вас установлены последние стабильные версии всех зависимостей.
### 3. Использование флага -F или -D
При сборке приложения используйте флаг `-F` для создания одного исполняемого файла или `-D` для создания папки с файлами. Возможно, использование одного из этих флагов решит проблему.
### 4. Проверка на наличие `__import__`
Если в вашем коде присутствуют какие-то дополнительные модули или библиотеки, их статическая загрузка может вызвать перезапуск программы. Попробуйте изолировать проблемный код.
### 5. Применение альтернативных сборок
Если проблема сохраняется, попробуйте использовать `pyarmor`, `cx_Freeze` или другие инструменты, которые могут более корректно упаковать ваше приложение.
### 6. Логи и отладка
Добавьте отладочные логи на каждом этапе. Это поможет понять, что происходит, когда программа перезапускается.
### 7. Проверка совместимости
Проверьте совместимость версии PyInstaller с вашей версией Python и Mac OS. Иногда устаревшие или слишком новые версии могут вызывать проблемы.
После применения предложенных стратегий, вам должно удастся найти источник проблемы, и вы сможете предпринять дальнейшие действия для ее устранения.