1
votes

pycharm ne peut pas ouvrir le fichier image

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


5 commentaires

Ê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 de os.path.join ?


Êtes-vous sûr que le fichier image /images/numbers/1.png existe 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 appel join () ? Dans l'état actuel des choses, l'appel join () 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 PIL


Supprimez le / de départ du chemin. Cela le rend absolu et je suppose que vous avez un dossier appelé images sous votre dossier de code


3 Réponses :


0
votes

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:

  1. Cliquez sur le bouton "Modifier la configuration".

  2. Modifiez le chemin dans la zone en surbrillance. (Pour mon propre projet, je viens de supprimer le chemin \ venv.)

J'espère que cela vous aidera!


2 commentaires

Eh bien, cela n'a pas aidé, avez-vous d'autres options à essayer?


En réponse à bit_scientist, non, désolé.



-2
votes

puisque python ne prend en charge que l'extension .gif du fichier, changez donc le format du fichier.


1 commentaires

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



0
votes

Insérez l'image dans le même fichier de projet que le code avec lequel vous travaillez. J'espère que cela aide


0 commentaires