【问题标题】:Couldn't open png, python pygame, same directory无法打开 png,python pygame,同一目录
【发布时间】:2017-02-04 15:44:24
【问题描述】:

我正在使用 pygame 在 python 中编写游戏。我有一个代码:

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

一切正常,但突然停止了。现在我有一个错误“无法打开 jbirdnapis.png”。图像与代码位于同一目录中。我使用 Pycharm 来执行游戏。它适用于其他贡献者的计算机 - 也是 Ubuntu,相同的版本。我们有来自 git 存储库的相同版本。有什么想法吗?

【问题讨论】:

  • 能否提供堆栈跟踪信息?
  • 当然 Traceback(最近一次通话最后):文件“/home/oleistka/Desktop/projektJBird/J-Bird/jBird/view/states/Intro.py”,第 45 行,在 intro = Intro() 文件“/home/oleistka/Desktop/projektJBird/J-Bird/jBird/view/states/Intro.py”,第 24 行,在 init imageJBird = pygame.image。 load("jbirdnapis.png") pygame.error: 无法打开 jbirdnapis.png
  • 我相信 PyCharm 从项目根目录运行脚本。只需使用相对路径(使用os.path)或更改图像的路径即可逐步浏览项目目录。
  • 能否将import os; print(os.getcwd()) 添加到代码顶部并回复结果路径?
  • @rlee827 /usr/bin/python3.5 /home/oleistka/Desktop/projektJBird/J-Bird/jBird/view/states/Intro.py /home/oleistka/Desktop/projektJBird/J -Bird/jBird/view 然后回溯

标签: python-3.x pygame pycharm


【解决方案1】:

它在文件夹view 中运行脚本,而不是在view/states‌ 中,因此它在view 中搜索图像。

您可以获取脚本的文件夹并添加到所有图像。

import os

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

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

当你在不同的地方跑步时会很有用。

【讨论】:

  • 谢谢。现在它可以工作了,但我很好奇为什么它更早地在其他计算机上工作。你知道答案吗?
  • 如果您从文件夹 states 执行为 python script.py 则“当前工作目录” (CWD) 为 states 但您(或 PyCharm)可以从文件夹 view 以 @987654329 运行它@ 然后 CWD 是 view 并在此文件夹中搜索。顺便说一句:试试代码print( os.getcwd() )
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-07
  • 2018-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-20
  • 2020-04-17
相关资源
最近更新 更多