Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
libedit/readline与OS X 10.7上的ipython 3.2.2冲突_Python_Python 3.x_Readline_Ipython_Easy Install - Fatal编程技术网

libedit/readline与OS X 10.7上的ipython 3.2.2冲突

libedit/readline与OS X 10.7上的ipython 3.2.2冲突,python,python-3.x,readline,ipython,easy-install,Python,Python 3.x,Readline,Ipython,Easy Install,我一直试图在mac running Lion上设置ipython 3(运行2.7很好),但似乎无法消除以下错误: 192:~ mlauria$ /Library/Frameworks/Python.framework/Versions/3.2/bin/ipython3 /Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages\ /IPython/utils/rlineimpl.py:96: Runt

我一直试图在mac running Lion上设置ipython 3(运行2.7很好),但似乎无法消除以下错误:

192:~ mlauria$ /Library/Frameworks/Python.framework/Versions/3.2/bin/ipython3
/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages\
/IPython/utils/rlineimpl.py:96: RuntimeWarning: Leopard libedit detected - \
readline will not be well behaved including some crashes on tab completion, and \
incorrect history navigation. It is highly recommended that you install readline,\
which is easy_installable with: 'easy_install readline'
  RuntimeWarning)
Python 3.2.2 (v3.2.2:137e45f15c0b, Sep  3 2011, 17:28:59)

easy\u install readline在ipython 2.7上正常工作以修复此问题,但它无法修复3.2。

您是否有类似于
easy\u install-3.2的命令


现在看来,似乎没有为Python3构建的二进制代码,因此您可能需要相关的东西从源代码处编译它(除非您可以在其他地方找到Python3构建).

这是不幸的,因为越来越多的OS X上的Python发行版是用苹果在OS X中提供的
libedit
构建的,而不是苹果没有提供的GPL许可的GNU
readline
库。例如,当前用于OS X的64位/32位python.org安装程序使用
libedit
,而仅32位的安装程序当前使用
readline
,因为
libedit
在较旧版本的OS X上有缺陷。而用于python 3.2的仅32位安装程序可以安装在10.7上,如果您需要安装任何C扩展模块,那么在10.7上就有问题,因为Python是使用10.7不支持的旧的10.4u SDK和ppc ARCH构建的。理想情况下,应修改iPython以正确使用
libedit
readline
。如果有Python bug阻止了这一点,那么应该对Python本身的bug进行归档。此外,也许可以说服PyPI上的
readline
包的维护人员构建并放置一个3.2二进制包

否则,您可以使用他们的源代码发行版自己构建它,假设您已经安装了用于Lion的Xcode。如果Python 3.2 bin框架不在您的路径中,您需要执行以下操作:

$ export PATH=/Library/Frameworks/Python.framework/Versions/3.2/bin:$PATH
然后,如果尚未安装Distribute for Python 3.2:

$ curl -O http://python-distribute.org/distribute_setup.py
$ python3.2 distribute_setup.py
然后从PyPI下载、构建和安装
readline
软件包:

$ easy_install-3.2 readline

或者您可以从第三方发行商(如MacPorts)安装Python 3.2版本,该发行商提供了一个
readline
端口(
py32 readline
)和一个iPython端口。

是否
easy\u install readline
工作正常,然后没有帮助,或者它在安装时有错误吗?我应该注意,
pip install readline
不计算在内,因为它(默认情况下)会在使用libedit的系统readline后面安装readline。如果您认为您已经有了readline,您可以这样做:
easy\u install-3.2-一个readline
。easy\u install readline在修复ipython 2.7的此错误时可以正常工作,但在3.2中无法修复。easy\u install只为运行easy\u install的python安装东西。因此,如果
easy\u install readline
适用于2.7,则需要对Python 3.2执行
easy\u install-3.2 readline
或类似操作。当然,您需要为Python3.2安装setuptools/distribute才能使用此命令。我应该注意的是,根据我在OSX 10.7.2上的Python.org 3.2的经验,这确实有效。要获得
easy\u install-3.2
,您需要为Python 3.2实例安装Distribute(),即下载然后运行
python3.2 Distribute\u setup.py
。但是,如前所述,如果没有为Python3.2构建的第三方
readline
包,这将无济于事。感谢ned,这非常有用-我最终只是通过MacPorts,相当轻松,以防它对我还必须运行的其他任何人都有帮助:sudo port-f activate py32 distribute;sudo port安装py32 ipython,然后创建适当的别名(尽管macports最后为您提供了创建别名的选项)。很高兴这对您有所帮助。顺便说一句,当你在StackOverflow上提问时,你应该将最有用的答案标记为已接受,或者编辑你的问题,直到你得到一个可接受的答案。