for ipython need pyreadline