Python-如果从其他目录运行,找不到图像文件?

问题描述

我是一名新程序员,我正在使用pyqt创建一个桌面应用程序。我目前正在通过pypi打包安装pip。我有一个文件目录系统:

MANIFEST.in
setup.py
src_dir
->main_script.py
->supporting_script1.py
->supporting_script2.py
->codeAssets_dir
--->img1.png
--->img2.png

现在,当我通过点子安装我的项目并从一个干净的venv运行它时,从venv的主目录运行它时,我的图像无法正确显示。但是,当我从源文件夹(与codeAssets_dir处于同一级别)运行项目时,图像将按预期显示。一切正常,并且我的项目甚至可以在程序的任何位置访问其他支持脚本。

我假设我正在对图像路径做一些愚蠢的操作,因为显然没有找到它。在我的support_script中,我使用的是相对路径self.pixmap = QtGui.Qpixmap('codeAssets_dir/img1.png')。我该如何解决

解决方法

您应基于os.path.dirname(__file__)构建文件的路径。