17

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

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

我发现一篇博客文章和其他消息来源说这可以通过

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

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

有没有人看到这些错误?是否有另一种方法可以使用 readline 安装 ipython?

4

6 回答 6

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。

于 2009-12-03T14:43:38.700 回答
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、自制软件、macports 等)

pip install -U readline

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

于 2012-01-05T20:09:03.127 回答
3

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

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

这将为您安装 python2.6、python 2.6 的 ipython 和 readline。启动 ipython 的命令将位于 /opt/local/bin/ipython2.6

于 2009-04-07T16:46:17.660 回答
3

MacOS Mavericks 的唯一工作方式是:

  1. 切换到您的虚拟环境workon myproject_name
  2. 删除 readline 和 ipython(如果你之前安装过)pip uninstall readline ipython
  3. 仅通过 easy_install 安装 readline(pip - 没用!)easy_install readline
  4. 最后用 pip 安装 ipythonpip install ipython

它在我的 MacOS 上运行良好并且经过了很长时间的测试。

于 2014-02-05T18:25:23.293 回答
1

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

ipython正常安装readline

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
于 2010-12-19T16:54:38.047 回答
0

“我实际上想将 ipython 用于 2.6.1”

它是可用的。我在 os x 上将它与 2.6.1 一起使用。你只需要安装官方的python 2.6.1 发行版,然后使用easy_install 安装ipython。

于 2009-04-07T20:51:21.173 回答