J'essaye de coder une calculatrice python, voici mon code
/usr/local/bin/python3.7 /Users/oscar/Desktop/python_calculator/main.py
pygame 1.9.6
Traceback (most recent call last):
Hello from the pygame community. https://www.pygame.org/contribute.html
File "/Users/oscar/Desktop/python_calculator/main.py", line 8, in <module>
one = Item.Item('/images/numbers/1.png', "1", 200, 200) # here is where you specify the image file name ( must be exact!)
File "/Users/oscar/Desktop/python_calculator/Item.py", line 14, in __init__
self.image = pygame.image.load(os.path.join(img_name))
pygame.error: Couldn't open /images/numbers/1.png
Process finished with exit code 1
et voici item.py:
import pygame
import os
global items
items = pygame.sprite.Group()
class Item(pygame.sprite.Sprite):
global hide
# the constructor
def __init__(self, img_name, name, x, y):
pygame.sprite.Sprite.__init__(self, items)
self.image = pygame.image.load(os.path.join(img_name))
self.rect = self.image.get_rect()
self.rect.x = x
self.rect.y = y
self.name = name;
self.hide = False
# to display on game panel
def display(self, surface):
if self.hide == False:
surface.blit(self.image, self.rect)
mais quand je l'exécute sur pycharm, il arrive avec ceci:
main.py:
import pygame
import os
import Item
global items
one = Item.Item('/images/numbers/1.png', "1", 200, 200) # here is where you specify the image file name ( must be exact!)
two = Item.Item('/images/numbers/2.png', "2", 200, 200) # here is where you specify the image file name ( must be exact!)
three = Item.Item('/images/numbers/3.png', "3", 200, 200) # here is where you specify the image file name ( must be exact!)
four = Item.Item('/images/numbers/4.png', "4", 200, 200) # here is where you specify the image file name ( must be exact!)
five = Item.Item('/images/numbers/5.png', "5", 200, 200) # here is where you specify the image file name ( must be exact!)
six = Item.Item('/images/numbers/6.png', "6", 200, 200) # here is where yo specify the image file name ( must be exact!)
seven = Item.Item('/images/numbers/7.png', "7", 200, 200) # here is where you specify the image file name ( must be exact!)
eight = Item.Item('/images/numbers/8.jpg', "8", 200, 200)# here is where you specify the image file name ( must be exact!)
nine = Item.Item('/images/numbers/9.png', "9", 200, 200)# here is where you specify the image file name ( must be exact!)
ten = Item.Item('/images/numbers/0.jpg', "0", 200, 200)# here is where you specify the image file name ( must be exact!)
plus = Item.Item('/images/sim/+.png', "+", 200, 200)# here is where you specify the image file name ( must be exact!)
minus = Item.Item('/images/sim/-.png', "-", 200, 200
j'ai téléchargé pygame et j'ai essayé d'exécuter le code de quelqu'un d'autre avec est très similaire et cela fonctionne et ne trouve pas dehors pourquoi Aidez-moi, s'il vous plaît Merci
3 Réponses :
J'ai eu un problème similaire à vous et j'ai trouvé la solution. Je pense que cela est principalement lié à la manière dont l'environnement virtuel exécute votre application. En termes simples, il l'exécute dans un répertoire différent. Voici la solution:
J'espère que cela vous aidera!
Eh bien, cela n'a pas aidé, avez-vous d'autres options à essayer?
En réponse à bit_scientist, non, désolé.
puisque python ne prend en charge que l'extension .gif du fichier, changez donc le format du fichier.
Qu'est-ce que cela signifie Python ne prend en charge que l'extension .gif ? Il existe différentes bibliothèques en Python pour gérer les images qui ont leurs propres restrictions. pygame en particulier peut prendre en charge d'autres formats
Insérez l'image dans le même fichier de projet que le code avec lequel vous travaillez. J'espère que cela aide
Êtes-vous sûr que les fichiers image se trouvent dans
/ images / numbers /et que vous n'avez pas manqué d'ajouter un chemin de base à cela lors de l'utilisation deos.path.join?Êtes-vous sûr que le fichier image
/images/numbers/1.pngexiste sur votre système? L'explication la plus simple est que ce n'est pas le cas. - Comme le dit @ TheGamer007, devriez-vous passer un chemin de base à votre appeljoin ()? Dans l'état actuel des choses, l'appeljoin ()ne fait rien.merci d'avoir répondu. il existe définitivement dans Finder
Si tout ce que vous voulez est de créer un objet Image, vous pouvez essayer d'utiliser la bibliothèque
PILSupprimez le
/de départ du chemin. Cela le rend absolu et je suppose que vous avez un dossier appeléimagessous votre dossier de code