当我 运行 我的应用程序在 VScode 中使用 PyQt5 时,图像、图标等不会 display/load。我能做什么?

Images, Icons, etc don't display/load when I run my app in VScode using PyQt5. What can I do?

我无法管理加载图像或图标。当我 运行 VScode 中的应用程序运行时,只是没有图像。图标甚至有 space 但 space 中没有任何图标应该位于的位置。但是 运行在命令终端中使用它就像它应该的那样。

使用 'os.path. ...' 方法,并且 运行 在 VScode 中使用它每次都有效。但是为什么会这样呢?

而且,当我单独 运行 时,os.path 方法将如何影响应用程序? IE。当我不通过 IDE 或命令提示符 运行 时(我打算将其作为一个独立的应用程序,只是为了好玩)。

一个有效的代码示例,整个应用程序有点大。 (但原则相同):

import sys
import os

from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QApplication, QLabel, QMainWindow


class MainWindow(QMainWindow):
   def __init__(self):
        super().__init__()

        self.setWindowTitle("My App")

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


        widget = QLabel("")
        image = QPixmap(os.path.join(current_directory, "39487.jpg" ))
        widget.setPixmap(image)
        widget.setScaledContents(True)

        self.setCentralWidget(widget)


app = QApplication(sys.argv)

window = MainWindow()
window.show()

app.exec_()

现在为什么当我 运行 这段代码时,图像显示。然而,当我删除 os.path 方法时,它在 IDE 中不起作用。 运行 提示中的第二个版本确实有效。

为什么 IDE 加载的代码与提示不同?

python 中相对于 python 命令执行位置的相对路径,默认情况下 VScode 在项目的根文件夹中启动 python,因此它不一定在脚本文件夹中启动,而是从有脚本和图标的文件夹中使用命令 promt,如果你从更高的文件夹中 运行,你也会遇到同样的问题。由于导致相对路径的错误,最好显式使用绝对路径或使用 os.path.

构造绝对路径