我一直在堆栈溢出和networking的其余部分如何添加数据文件到我的Python应用程序:
import Tkinter class simpleapp_tk(Tkinter.Tk): def __init__(self,parent): Tkinter.Tk.__init__(self,parent) self.parent = parent self.initialize() def initialize(self): self.grid() --- Everything Fine Here --- self.B = Tkinter.Button(self, text = 'Create Document', command = self.OnButtonClick) self.B.grid(column = 0, row = 6) def OnButtonClick(self): createDoc() if __name__ == "__main__": app = simpleapp_tk(None) app.title('Receipt Form') app.iconbitmap(os.getcwd() + '/M.ico') app.mainloop()
我曾尝试使用.spec文件没有运气
Onedir工作正常,但是当我尝试编译到一个单一的可执行文件,它给出了一个错误,文件'M.ico'没有定义。
如果有人能够将数据文件与pyinstaller绑定到一个文件中。 请帮忙。 谢谢。
我在运行PyInstaller 3.2运行Python 2.7的Windows 10计算机上
你必须指定你想添加到你的pyinstaller .spec文件或通过命令行选项的每个数据文件(.spec是更容易。)下面是我的.spec文件,“数据”部分:
# -*- mode: python -*- block_cipher = None a = Analysis(['pubdata.py'], pathex=['.', '/interface','/recommender'], binaries=None, datas=[('WordNet/*.txt','WordNet'), ('WordNet/*.json','WordNet'), ('WordNet/pdf_parsing/*.json','pdf_parsing'), ('WordNet/pdf_parsing/*.xml','pdf_parsing'), ('images/*.png','images'), ('database/all_meta/Flybase/*.txt','all_meta'), ('database/all_meta/Uniprot/*.txt','all_meta'), ('database/json_files/*.json','json_files'), ('Data.db','.')], hiddenimports=['interface','recommender'], hookspath=[], runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher) pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE(pyz, a.scripts, exclude_binaries=True, name='GUI', debug=False, strip=False, upx=True, console=True ) coll = COLLECT(exe, a.binaries, a.zipfiles, a.datas, strip=False, upx=True, name='GUI') app = BUNDLE(coll, name='App.app', icon=None)
在此之后,如果您试图访问在.spec文件中指定的任何数据文件,那么在您的代码中,您必须使用Pyinstaller的_MEIPASS文件夹来引用您的文件。 以下是我如何使用名为Data.db的文件进行的操作:
import sys import os.path if hasattr(sys, "_MEIPASS"): datadir = os.path.join(sys._MEIPASS, 'Data.db') else: datadir = 'Data.db' conn = lite.connect(datadir)
上面的这个方法取代了这个独立的语句:
conn = lite.connect("Data.db")
这个链接帮助我了很多,当我正在经历同样的事情: https : //irwinkwan.com/2013/04/29/python-executables-pyinstaller-and-a-48-hour-game-design-compo/
希望这可以帮助!