我一直在梳理Stack Overflow和网络的其余部分,介绍如何将数据文件添加到我的python应用程序中:
import Tkinterclass 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文件,带有“datas”部分:# -*- mode: python -*-block_cipher = Nonea = Analysis(['pubdata.py'],pathex=['.','/interface','/recommender'],binarIEs=None,datas=[('WordNet/*.txt','WordNet'),('WordNet/*.Json',('WordNet/pdf_parsing/*.Json','pdf_parsing'),('WordNet/pdf_parsing/*.xml',('images/*.png','images'),('database/all_Meta/Flybase/*.txt','all_Meta'),('database/all_Meta/Uniprot/*.txt',('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,name='GUI')app = BUNDLE(coll,name='App.app',icon=None)
在此之后,如果您尝试访问在.spec文件中指定的任何数据文件,则必须在代码中使用Pyinstaller的_MEIPASS文件夹来引用您的文件.以下是我使用名为Data.db的文件的方式:
import sysimport 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/
希望这可以帮助!
总结以上是内存溢出为你收集整理的python – 任何人都成功地将数据文件捆绑到Pyinstaller的单个文件中?全部内容,希望文章能够帮你解决python – 任何人都成功地将数据文件捆绑到Pyinstaller的单个文件中?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)