首页 > 解决方案 > 我已将我的应用程序捆绑在 .exe 中,但它无法找到其他工作文件

问题描述

所以我创建了这个小脚本,它可以抓取旁边的文件并对其进行处理。到目前为止,一切都很好。我的脚本有以下内容:

cwd = os.path.dirname(os.path.realpath(__file__))
with open(cwd + '/myfile.csv', newline='') as csv_file:
    readCSV = csv.reader(csv_file)

# rest of the code

当作为 .py 文件执行时,它可以完美运行,并且可以完成它必须做的事情。

当我试图将这个单个文件编译成可执行文件(适用于 mac 或 windows)时,问题就出现了,它只是没有找到文件'myfile.csv' 就在它旁边。

我尝试将文件与 command 捆绑在一起pyinstaller --add-data '/path/to/myfile.csv:.' /path/to/myscript.py,是的,它在 .spec 文档中包含 csv 并将其与其他文件夹捆绑在一起。但是,当我执行该程序时,它一直说它找不到 myfile.csv,而它正试图到达我计算机中的根文件夹(?)

我可能在这里遗漏了一些东西,到目前为止,我的所有脚本都使用上面的代码完美地工作,以确保脚本适用于当前工作目录中的文件,但是当它编译成 .exe 时这似乎不起作用。

我的原始代码有什么我应该改变的吗?我在这里不知所措...

标签: pythonpyinstaller

解决方案


谢谢,它似乎工作。

此外,我找到了另一个有效的解决方案,而不是:

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

它可以更改为:

cwd = os.path.dirname(sys.argv[0])

但我看不出它的逻辑。无论如何,非常感谢!


推荐阅读