2017-02-04 10 views
0

Я пишу игру в python, используя pygame. У меня есть код:Не удалось открыть png, pygame python, тот же каталог

imageJBird = pygame.image.load("jbirdnapis.png") 

Все было в рабочем состоянии, но внезапно оно остановилось. Теперь у меня есть ошибка «Не удалось открыть jbirdnapis.png». Изображение находится в том же каталоге, что и код. Я использую Pycharm для выполнения игры. Он работает на компьютере другого автора - также Ubuntu, той же версии. У нас такая же версия из репозитория git. Есть идеи?

+0

Не могли бы вы предоставить трассировку стека? – rlee827

+0

Конечно Traceback (самый последний вызов последнего): Файл "/home/oleistka/Desktop/projektJBird/J-Bird/jBird/view/states/Intro.py", строка 45, в интро = Интро() Файл «/home/oleistka/Desktop/projektJBird/J-Bird/jBird/view/states/Intro.py», строка 24, в __init__ imageJBird = pygame.image.load ("jbirdnapis.png") pygame. error: Не удалось открыть jbirdnapis.png –

+0

Я считаю, что PyCharm запускает скрипт из корневого каталога проекта. Просто используйте относительный путь (с «os.path») или измените путь к изображению, чтобы пройти через каталоги проектов. –

ответ

0

Он запускает скрипт в папке view, а не в view/states‌, так что он ищет изображение в view.

Вы можете получить папку сценария и добавить все изображения.

import os 

folder = os.path.dirname(os.path.realpath(__file__)) 

imageJBird = pygame.image.load(os.paht.join(folder, "jbirdnapis.png")) 

Будет полезно, когда вы будете работать в разных местах.

+0

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

+0

, если вы выполняете из папки 'states' как' python script.py', тогда «текущий рабочий каталог» (CWD) является «состояниями», но вы (или PyCharm) можете запускать его из папки 'view' как' python states/script. py', а затем CWD является 'view', и он ищет в этой папке. BTW: попробуйте ввести код 'print (os.getcwd())' – furas