无法打开在pygame的PNG文件(Can't open .png file in pyga

2019-10-21 08:29发布

我已经做了乒乓球比赛用通电和它工作在Windows,但在Linux中,它给我的错误“无法打开paddle.png”。

再次,它工作在Windows,但不是Linux。

代码示例: - 是指代码的一部分,而不是整个事情

import pygame, sys, time
from random import *

pygame.init()

disw = 640
dish = 480
black = (  0,  0,  0)
white = (255,255,255)
green = (  0,255,  0)

gameDisplay = pygame.display.set_mode((disw, dish))
pygame.display.set_caption("Super-Pong", "S-P")
Clock = pygame.time.Clock()

playerOne = pygame.image.load("paddle.png")
playerOneX = 50
playerOneY = 180

playerTwo = pygame.image.load("paddle.png")
playerTwoX = 590
playerTwoY = 180

问题:会不会在Linux开放源.png文件的Python程序。

尝试:在Windows中运行,工作在Windows中。

他们是在同一个目录中。

我也尝试使其paddle.jpg和几个其他格式,没有骰子。

我的错误:

[hunter@localhost ~]$ su -
Password: 
Last login: Sun Nov 30 16:56:52 EST 2014 on pts/0
[root@localhost ~]# python /home/hunter/Documents/realprojects/superpong/Super-Pong.py
Traceback (most recent call last):
  File "/home/hunter/Documents/realprojects/superpong/Super-Pong.py", line 16, in <module>
    playerOne = pygame.image.load("paddle.png")
pygame.error: Couldn't open paddle.png
[root@localhost ~]# 

Answer 1:

当你在一个Python库告诉函数来加载一个文件的相对路径,如"paddle.png" ,它会看起来在当前工作目录(CWD)。 如果你启动一个Python程序,而CWD是用户的主目录root ,pygame的会寻找在用户的主目录下的图像文件root ,除非另有说明。

要更改pygame的外观图片,你需要做的三两件事之一:

  • 改变当前的工作目录( cd ),以包含目录paddle.png运行前Super-Pong.py 。 Python中的Windows自动执行此操作时您双击一个Python程序,这就是为什么它在Windows中工作。
  • 在节目中,当前工作目录改变为含有目录paddle.png ,这很可能包含程序(在同一目录Super-Pong.py )。 于节目的路径被传递sys.argv[0]所以尝试: os.chdir(os.path.dirname(__file__))
  • 在节目中,路径添加到文件中。 再次,假设paddle.png是在同一文件夹,尝试: playerOne = pygame.image.load(os.path.join(os.path.dirname(__file__), "paddle.png"))

(为什么su -反正游戏应该不需要作为超级用户运行)。



Answer 2:

我知道我有点晚,但对于任何人谁是今天仍然遇到此问题,尝试将号码添加到您的图像名称(例如paddle1.png)。 我知道这似乎不可思议,但它实际上固定它,我出于某种原因,它可能无法为您解决问题,虽然...



文章来源: Can't open .png file in pygame