我已成功创建了一个带有Pyinstaller的exe文件。但是,当我运行exe文件并填写路径,文件&弹出exe文件的消息框中的sheetnames表示我错误输入了文件名或sheetname的文件。我显然是自己键入此消息,因此我的问题是:为什么exe文件在查找我的文件时遇到麻烦,而当我在PyCharm中执行完全相同的操作时运行它没有问题?
data-flag
希望有人对此有具体的答案。
谢谢,
的Jeroen
答案 0 :(得分:0)
定义一个翻译路径的函数。
import os, sys
def resource_path(relative_path):
if hasattr(sys, "_MEIPASS"):
base_path = sys._MEIPASS
else:
base_path = os.path.abspath(".")
return os.path.join(base_path, relative_path)
使用此功能可以扭曲文件路径,例如:
bingo_music = resource_path('resources/bingo.wav')
demo_file = resource_path('texts/demo.txt')
在.spec
文件中,将列表放在exe = EXE()
:
[('resources/bingo.wav', r'C:\Users\Administrator\resources\bingo.wav', 'music'),
[('texts/demo.txt', r'C:\Users\Administrator\texts\demo.txt', 'text'),],
将您在项目中使用的每个文件写为元组(relative_path, absolute_path, folder_name_in_bundled_app)
,第三个参数是捆绑应用程序中文件将被复制到的文件夹的名称。然后文件将正常工作。