#python #pygame #raspberry-pi
#python #pygame #raspberry-pi
Вопрос:
Я использую Raspberry Pi 4 B с сенсорным экраном. В качестве ОС я использую ОС Raspberry Pi с рабочим столом. В настоящее время я работаю над цифровым помощником. Я написал код на своем ПК с Windows, но хочу запустить помощника на своем Raspberry pi. Но когда я запускаю программу, я получаю следующую ошибку:
pygame.ошибка: не удалось открыть файл image.PNG
Поскольку это более крупный проект, я постараюсь показать вам только код, который имеет отношение к графическому интерфейсу:
import pygame
pygame.init()
clock = pygame.time.Clock()
screen = pygame.display.set_mode([800, 480])
pygame.display.set_caption('P.I.A.')
screen_icon = pygame.image.load('image.PNG')
pygame.display.set_icon(screen_icon)
Изображение.PNG находится в том же каталоге, что и сама программа. Что меня действительно беспокоит, так это то, что код отлично работает на моем ПК с Windows и совсем не работает на моем raspberry pi.
Я могу открыть изображение.PNG с помощью программы просмотра изображений.
Я попытался переключить PNG на JPG, а также изменил название PNG. Оба не сработали.
Есть идеи, как я могу решить эту проблему?
Редактировать: теперь я также попытался изменить рабочий каталог и попытался использовать os.path.join()
. Оба не сработали. Единственное отличие заключалось в том, что в нем был указан путь к изображению, когда я использовал вариант 2.
Комментарии:
1. Возможно, вам больше повезет с этим вопросом в стеке Raspberry Pi
2. сначала попробуйте с.
/full/path/to/image.png
Позже вы можете найти вопрос, который как использовать что-то подобноеos.path.abspath(os.dirname(__file__))
, чтобы получить полный путь к запущенному скрипту и использовать его для создания полных путей к изображениям и другим ресурсам.3. и проверьте, действительно ли у вас
'image.PNG'
есть, потому'image.png'
что это другое имя. И проверьте в любом средстве просмотра изображений, можете ли вы открыть этот файл.
Ответ №1:
Я бы рекомендовал вам попробовать изменить относительный путь на абсолютный путь к файлу. Пример: pygame.image.load('/home/user/Desktop/image.PNG')
При работе с файлами в Linux стандартным соглашением об именовании являются расширения файлов в нижнем регистре: «.png», «.jpg». etc. Я бы проверил, чтобы и имя файла, и ваш .load
конец были в нижнем регистре «.png» .
Кроме того, если вы запускаете скрипт из командной строки, убедитесь, что вы находитесь в том же каталоге, что и скрипт и изображение. В зависимости от ваших настроек, если вы находитесь в своем /home
каталоге и запускаете скрипт на своем /home/username/Desktop
like /home/username/Desktop/coolgame.py
, тогда скрипт может искать файл в вашем /home
каталоге.
Если ничего из этого не работает, самое простое, что можно сделать при отладке ошибок файлов / каталогов, — это посмотреть, куда именно смотрит программа. Перед запуском image.load
просмотрите все файлы в рабочем каталоге, пока вы еще в программе. Вероятно, самый простой способ сделать это os.listdir(dir)
. Я бы порекомендовал что-то вроде этого:
pygame.display.set_caption('P.I.A.')
import os
print(os.listdir('.'))
screen_icon = pygame.image.load('image.PNG')
Удачи!