import urllib.parse falla cuando Python se ejecuta desde la línea de comandos

He observado el siguiente comportamiento en python 3.4.2, y no puedo explicarlo. Esperemos que alguien pueda arrojar algo de luz sobre el asunto:

En IPython:

In [129]: import urllib

In [130]: print(urllib.parse)
<module 'urllib.parse' from '/Users/ashwin/.pyenv/versions/3.4.2/lib/python3.4/urllib/parse.py'>

Importé un módulo e imprimí uno de sus atributos. Todo funciona como se esperaba. Hasta ahora, la vida es buena.

Ahora, hago lo mismo desde la línea de comando:

$ python -c 'import urllib; print(urllib.parse)'  
Traceback (most recent call last):
  File "<string>", line 1, in <module>
AttributeError: 'module' object has no attribute 'parse'

¡¿Que qué?! no es así como se supone que debe funcionar.
Ok, tal vez este es un comportamiento de todo Python; tal vez los módulos no se importan inmediatamente cuando se usa el-c bandera. Probemos con otro módulo:

$ python -c 'import datetime; print(datetime.datetime)'
<class 'datetime.datetime'>

¡¿Qué?! ¿Cómo funciona paradatetime y no paraurllib? Estoy usando la misma versión de python en ambos lugares (3.4.2)

¿Alguien tiene alguna idea sobre esto?

EDITAR:

Por uno de los comentarios:

$ which -a ipython
/Users/ashwin/.pyenv/shims/ipython
/Library/Frameworks/Python.framework/Versions/2.7/bin/ipython
/usr/local/bin/ipython
/usr/local/bin/ipython

Y

$ which -a python
/Users/ashwin/.pyenv/shims/python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
/usr/bin/python
/usr/bin/python

Respuestas a la pregunta(2)

Su respuesta a la pregunta