在mac上安装带有readline的ipython

时间:2009-04-07 15:55:16

标签: python macos readline ipython

我在Mac OS 10.5上使用ipython和python 2.5.1(我实际上想使用ipython for 2.6.1,但它似乎不可用?)

我通过easy_install安装了ipython。它工作但缺少gnu readline(用ctrl-R等很好的搜索命令行历史记录所需)。

我找到了blog post和其他来源说这可以通过

修复

sudo easy_install -f http://ipython.scipy.org/dist/ readline

但是,这会导致readline.c中的构建错误,尤其是rl_compentry_func_trl_catch_signals等未声明的函数。

有没有人看到过这些错误?是否有其他方法可以使用readline安装ipython?

6 个答案:

答案 0 :(得分:34)

要在不使用MacPorts的情况下在Snow Leopard或Lion上安装ipython,您只需执行以下操作:

sudo easy_install readline ipython

(注意,如果你使用“pip”来安装readline,那么ipython将不会看到readline库,不知道为什么)。

编辑:

如果你安装了ipython,请用

删除它
sudo pip uninstall ipython

pip uninstall ipython #for virtualenvs

然后确保您已安装readline并重新安装iptyhon

pip install readline ipython

由于某些原因,如果在安装过程中没有readline,它将自行安装而不支持readline或使用默认的mac readline。

答案 1 :(得分:13)

这对我有用(我正在使用python 2.7,对于你需要编辑的其他版本):

cd /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload
sudo mv readline.so readline.so.bak

安装readline但你想要(pip,homebrew,macports等)

pip install -U readline

成功!它适用于virtualenv和virtualenvwrapper,而且无需修改ipython:)

答案 2 :(得分:3)

您可以使用MacPorts基本上使用一个命令安装所需的一切。首先从http://www.macports.org/下载并安装MacPorts。

然后在终端中执行以下操作: 1)sudo port -v selfupdate
2)sudo port -v install py26-ipython

那将为你安装python2.6,ipython for python 2.6和readline。启动ipython的命令位于/opt/local/bin/ipython2.6

答案 3 :(得分:3)

MacOS Mavericks唯一的工作方式是:

  1. 切换到您的virtualenv workon myproject_name
  2. 删除readline和ipython(如果之前已安装)pip uninstall readline ipython
  3. 仅通过easy_install安装readline(pip - no work!)easy_install readline
  4. 最后使用pip pip install ipython
  5. 安装ipython

    它在我的MacOS上工作得很好并且测试了很长时间。

答案 4 :(得分:1)

如果您不想使用端口,则可以选择其他选项。 警告:这不是升级安全。

正常安装ipythonreadline

sudo easy_install -f http://ipython.scipy.org/dist/ readline ipython

找到readline蛋的完整路径。对于python 2.6,这可能是:

/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/readline-2.5.1-py2.6-macosx-10.3-fat.egg

使用您喜欢的文字编辑器修改ipython

vim `which ipython`

在文件sys.exit的最后一行之前,插入:

sys.path.insert(0,'PATH_TO_READLINE_EGG')

保存并退出(:wq)。

检查readline是否正常:

ipython

答案 5 :(得分:0)

“我实际上想使用ipython for 2.6.1”

可用。我在os x上使用2.6.1。您只需要安装官方的python 2.6.1发行版,然后使用easy_install安装ipython。