The Label constructor accepts a parameter compound. Pass the constructor both the image and the text and go to compoundhow Tkinter.CENTERto overlay the text on the image. The documentation for this feature is at http://effbot.org/tkinterbook/label.htm
import Tkinter
import Image, ImageTk
im = Image.open(r'C:\Users\JOHN\Desktop\key.jpg')
root = Tkinter.Tk()
tkimage = ImageTk.PhotoImage(im)
Tkinter.Label(root, image=tkimage, text="Update User", compound=Tkinter.CENTER).pack()
root.mainloop()
Also note that you should not mix package and mesh. You must choose one or the other. Link: http://effbot.org/tkinterbook/grid.htm
P.S. , , , , , set compound=Tkinter.BOTTOM.