我已经成功地编辑了我的spec文件,并将包含我的数据的文件夹添加到其中。它构建得很好,但仍然无法访问数据。当我尝试运行compiled.exe时,会出现以下错误:Error loading Python DLL: C:\Users\Sal\AppData\Local\Temp\_MEI60122\python27.dll (error code 126)
编辑1-我仍然没有弄清楚我的规范文件是这样的:a = Analysis(['Clock_In.py'],
pathex=['C:\\Users\\Sal\\Desktop'],
hiddenimports=[],
hookspath=None,
runtime_hooks=None)
a.datas += [('CO_time.pkl','CO_time.pkl', 'DATA')]
a.datas += [('hours.pkl','hours.pkl', 'DATA')]
a.datas += [('Obj_file.pkl','Obj_file.pkl', 'DATA')]
a.datas += [('weekly_hours_dict.pkl','weekly_hours_dict.pkl', 'DATA')]
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.datas,
a.binaries,
a.scripts,
exclude_binaries=True,
name='Clock_In.exe',
debug=False,
strip=None,
upx=True,
console=True,
icon="C:\Users\Sal\Desktop\Raindropmemory-Legendora-BrokenSword.ico")
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
strip=None,
upx=True,
**name='Clock_In')
编辑2
我正在64位操作系统(windows 8)上使用32位python,我注意到这可能会导致我的问题,但仍然没有解决方案。
编辑3
所以我刚刚尝试下载64位python并将其放到我的系统路径中。用我的.spec文件运行pyinstaller,仍然得到完全相同的错误代码!怎么回事!不过,一个奇怪的细节是,spec文件中的icon="C:\Users\Sal\Desktop\Raindropmemory-Legendora-BrokenSword.ico")语句成功执行并更新了图标,而与之前一样,它不会执行并更新图标。
编辑4
这是我在我的代码中直接从文档中获取的关于MEIPASS的语句。if getattr(sys, 'frozen', False):
# we are running in a |PyInstaller| bundle
basedir = sys._MEIPASS
else:
# we are running in a normal Python environment
basedir = os.path.dirname(__file__)