You might also set read_only to true when selecting the folder:
read_only
imap_conn.select('Inbox', readonly=True)
The following should work:
typ, msg_data = imap_conn.fetch(uid, '(BODY.PEEK[HEADER])')
or BODY.PEEK[TEXT], etc.
BODY.PEEK[TEXT]
You can use (RFC822.PEEK) as the "message-parts" argument, according to RFC 1730 (I have not verified which servers actually implement that correctly, but it doesn't seem hard for them to).
(RFC822.PEEK)