Python Tkinter PhotoImage不';不存在

Python Tkinter PhotoImage不';不存在,python,canvas,tkinter,pathlib,Python,Canvas,Tkinter,Pathlib,我试图让我的应用程序的运动原型工作时,我偶然发现了一个错误,这是与Tkinter的照片图像 起初,我决定使用Pathlib,但我开始认为这是一个错误(我仍然需要非windows用户使用此应用程序的方法) ##--Setup--## #导入和变量 从pathlib导入路径#增加mac和Linux机器上的可访问性 从tkinter进口* window=Tk() 窗口标题(“项目001-阿尔法0.1之前(pa0.1)”) 游戏=画布(窗口,宽度=1280,高度=720) Game.config(bg=

我试图让我的应用程序的运动原型工作时,我偶然发现了一个错误,这是与Tkinter的照片图像

起初,我决定使用Pathlib,但我开始认为这是一个错误(我仍然需要非windows用户使用此应用程序的方法)

##--Setup--##
#导入和变量
从pathlib导入路径#增加mac和Linux机器上的可访问性
从tkinter进口*
window=Tk()
窗口标题(“项目001-阿尔法0.1之前(pa0.1)”)
游戏=画布(窗口,宽度=1280,高度=720)
Game.config(bg=“白色”)
游戏包()
#定义图像
PlayerImgPath=Path(“Assets\\Char\\Player\\Untitled.png”)#Player
PlayerImg=PhotoImage(文件=PlayerImgPath)
#精灵
玩家=游戏。创建图片(20250,图片=玩家)
当运行此命令时,我得到以下错误

file "D:\PythonD\lib\tkinter\__init__.py", line 3495, in __init__
    self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError: couldn't open "Assets\Char\Player\Untitled.png": no such file or directory

你写的代码没有问题。Python找不到该文件。可能是运行Python的目录和代码不同的目录。如果你加上,问题就解决了

此外,与使用双斜杠相比,按如下方式编写代码更为实用

PlayerImgPath = Path(r"Assets/Char/Player/Untitled.png")
还要确保python代码位于资产目录中

YourProjectFolder/
├──YourCode.py
└── Assets/
    └── Char/
        └── Player/
            └── Untitled.png

实际上,可以编写
“Assets\\Char\\Player\\Untitled.png”
“Assets/Char/Player/Untitled.png”,并且在每个操作系统中都能正常工作。是的,这与Tkinter Photoimage无关。这正是我的文件结构,完整目录是D:\Programming Folder\Assets\Char\Player\Untitled.pngar您是通过cmd还是IDE运行代码的?如果您通过cmd运行。我建议将python添加到系统变量。@MuhammetEminTURGUT我使用Visual Studio代码来运行它,有时我会使用IDLE。这不是tkinter的问题。您只是给了一个函数一个错误的路径,该函数需要一个现有文件的路径。@tgikal:相对路径是相对于当前工作目录的,而不是相对于脚本所在的文件夹的。如果您需要非windows用户能够使用该程序,请使用前向斜杠。它们可以在所有平台上工作,包括windows。@tgikal:这绝对不是真的。只有当您将cd刻录到脚本的位置时,它们才是相同的。将脚本放在当前工作目录之外的单独文件夹中是非常常见的。运行脚本时,您所在的目录是什么?也许在尝试访问文件之前,您可以让脚本打印出
os.getcwd()
的结果。