Here's my method (which turned out to be basically a more reliable and pythonic version of berdario's method). It only disables writing to .python_history, but not reading from it if it exists, or appending new lines to the current instance's history. I recommend saving it as site-packages/sitecustomize.py, because site is the module that both writes to .python_history and imports sitecustomize if it exists, although naming it something else and pointing to it with PYTHONSTARTUP works too.
import sys
oldhook = getattr(sys, '__interactivehook__', None)
if oldhook:
def newhook():
import readline, atexit
oldhook()
atexit.unregister(readline.write_history_file)
sys.__interactivehook__ = newhook
update: what i did for 3.7, specific to my system, not pep8:
import rlcompleter,readline as r,sys
def f():r.parse_and_bind('tab:complete');r.read_init_file()
sys.__interactivehook__=f