Python Forum

Full Version: FileNotFoundError when I try putting sprite in Pygame
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I started following a Space Invaders tutorial for pygame, and I made sprites in Piskel and put them into the folder with my game, but I got an error saying "FileNotFoundError: No such file or directory." Note that I am very new to pygame. I tried many ways, but it still comes up with the same error, which are listed below.

- pygame.image.load("cannon.png")
- pygame.image.load("cannon.gif")
- pygame.image.load("\Users\ZULU\AppData\Local\Programs\Python\Python37-32\Zion_Python Games\First Pygame\cannon.png")
- pygame.image.load("/Users/ZULU\AppData/Local/Programs/Python/Python37-32/Zion_Python Games/First Pygame/cannon.png")
- pygame.image.load(os.path.abspath("cannon.png"))
- pygame.image.load(os.path.abspath("\Users\ZULU\AppData\Local\Programs\Python\Python37-32\Zion_Python Games\First Pygame\cannon.png"))

Also, I tried checking if the path existed, but It always appeared False.

os.path.exists('/Users/ZULU/AppData/Local/Programs/Python/Python37-32/Zion_Python Games/First Pygame/cannon.png')

I'm just not sure what to do.
Loading a file is in relation to the file that you ran to run the code.

I am assuming it is this based on your path?
pygame.image.load("First Pygame\cannon.png")
But that is assuming that your main file you run is in the directory "First Pygame" directory

If that fails i would give the fullpath. This is not the fullpath if you are on Windows. I am also assuming that based on seeing AppData directory.
Quote:
 pygame.image.load("\Users\ZULU\AppData\Local\Programs\Python\Python37-32\Zion_Python Games\First Pygame\cannon.png")

It should be
 pygame.image.load("C:\Users\ZULU\AppData\Local\Programs\Python\Python37-32\Zion_Python Games\First Pygame\cannon.png")
I tried adding the full path, but my code wouldn't run because of an error.
Error:
(unicode error) 'unicodescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
I'm not sure what this means.
When use directories, it's "/" not "\".
I just tried that, and I got the FileNotFound error.
Error:
Traceback (most recent call last): File "C:\Users\ZULU\AppData\Local\Programs\Python\Python37-32\Zion_Python Games\First Pygame\First Pygame.py", line 15, in <module> icon = pygame.image.load("C:/Users/ZULU/AppData/Local/Programs/Python/Python37-32/Zion_Python Games/First Pygame/cannon.png") FileNotFoundError: No such file or directory.
checking the path did appear false too when I checked it with the os module too, if that tells more of what is going on.
os.path.exists('C:/Users/ZULU/AppData/Local/Programs/Python/Python37-32/Zion_Python Games/First Pygame/cannon.png')
Any other suggestions?
Try to put your image and source code in the same directory, and then use pygame.image.load("cannon.png") to see if it works.
I've tried that, and I get the same error.
Then I think you either don't have the image in the same directory, or got the image name wrong.
It could be the directory name causing an issue
First Pygame
1) Is there a space here?
2) are you running on windows OS? I wasnt sure at first because you did not have the C drive in the path. The only reason i suspected windows was because i saw the AppData directory.

In windows OS you have to put quotation marks around the path if there is a space in a directory name such as:
"C:/Users/ZULU/AppData/Local/Programs/Python/Python37-32/Zion_Python Games/First Pygame/cannon.png"
However in linux and mac you escape it such as:
C:/Users/ZULU/AppData/Local/Programs/Python/Python37-32/Zion_Python Games/First\ Pygame/cannon.png
I havent used windows in a long time so i could be wrong. But i would try escaping the space in the path when you load it from pygame
pygame.image.load("C:/Users/ZULU/AppData/Local/Programs/Python/Python37-32/Zion_Python Games/First\ Pygame/cannon.png")
I figured it out!!

I put the file type in the name of the file, so the file name looked like "cannon.png" instead of "cannon," so i had to put an extra '.png' at the end.

pygame.image.load("C:/Users/ZULU/AppData/Local/Programs/Python/Python37-32/Zion_Python Games/First Pygame/cannon.png.png")
I feel so dumb. Thanks for the help though.