请帮助:Windows 上的 IPython for Emacs 崩溃

发布于 2024-09-26 09:13:40 字数 15129 浏览 7 评论 0原文

问题更新:为什么没有 In[1]: 提示?

请参阅 Emacs 中 IPython 命令行的以下输出。

Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)]
Type "copyright", "credits" or "license" for more information.

IPython 0.10 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object'. ?object also works, ?? prints more.


import sys
sys.path
Out[4]: 
['',
 'C:\\Python25\\scripts',
 'C:\\Python25\\lib\\site-packages\\pyflakes-0.4.0-py2.5.egg',
 'C:\\Python25\\lib\\site-packages\\pylint-0.21.3-py2.5.egg',
 'C:\\Python25\\lib\\site-packages\\logilab_astng-0.20.3-py2.5.egg',
 'C:\\Python25\\lib\\site-packages\\logilab_common-0.52.0-py2.5.egg',
 'C:\\Python25\\lib\\site-packages\\unittest2-0.5.1-py2.5.egg',
 'C:\\Python25\\Lib\\site-packages\\pyflakes',
 'C:\\Python25\\Lib\\site-packages\\Pymacs',
 'C:\\Python25\\Lib\\site-packages\\rope',
 'C:\\Python25\\Lib\\site-packages\\ropemacs',
 'C:\\Python25\\Lib\\site-packages\\ropemode',
 'C:\\WINDOWS\\system32\\python25.zip',
 'C:\\Python25\\DLLs',
 'C:\\Python25\\lib',
 'C:\\Python25\\lib\\plat-win',
 'C:\\Python25\\lib\\lib-tk',
 'C:\\Python25',
 'C:\\Python25\\lib\\site-packages',
 'C:\\Python25\\lib\\site-packages\\win32',
 'C:\\Python25\\lib\\site-packages\\win32\\lib',
 'C:\\Python25\\lib\\site-packages\\Pythonwin',
 'C:\\Python25\\lib\\site-packages\\IPython/Extensions',
 u'C:\\Home\\_ipython']

您好,

我在 Windows XP 上使用 IPython 0.10、Python 2.5、EmacsW32 23.1 和 ipython.el Rev.2927。当我在 Emacs 中调用 python-shell 时,它总是崩溃。有人可以帮助解决这个问题吗?多谢!

更新:我已尝试修复https://bugs.launchpad .net/ipython/+bug/290228 ,但这没有帮助。

IPython 崩溃并显示以下长调试信息:

错误:发生意外错误 在对输入进行标记时以下 回溯可能已损坏或无效 错误消息是:('EOF in 多行语句', (14, 0))

------------------------------------------------------------ ---------------------------- 类型错误
Python 2.5.2: C:\Python25\python.exe 2010 年 9 月 30 日星期四 14:00:08 一个问题 发生执行Python代码。这里 是函数调用的顺序 导致错误的原因是,最多 最近(最里面)的调用最后一次。

c:\Python25\Scripts\ipython-script.py 在 () 1 2 3 4 5 6 7 ----> 8 全局加载入口点= 9 #!C:\Python25\python.exe 10 # 简易安装入口脚本: 'ipython==0.10','console_scripts','ipython' 11 需要 = 'ipython==0.10' 12 导入系统 13 从 pkg_resources 导入 load_entry_point 14 15 系统退出( 16 load_entry_point('ipython==0.10', 'console_scripts', 'ipython')() 17) 18 19 20 21 22 号 23 24 25 26 27 28 29 30 31

C:\Python25\lib\site-packages\ipython-0.10-py2.5.egg\IPython\ipapi.pyc 在 launch_new_instance(user_ns=None, shellclass=无) 第541章 第542章 第543章 第544章 第545章 第546章 第547章 无,shellclass = 无): 548 """ 创建并启动一个新的 ipython 实例。 第549章 第550章 551 ipython 会话正在运行。 第552章 第553章 脚本。 第554章 第555章 -->第556章 第557章 第558章 第559章 560 def make_user_ns(user_ns =无): 561 """返回有效的用户交互命名空间。 第562章 第563章 作为 564 有效的 IPython 用户命名空间,您可以将其传递给 各种嵌入 ipython 中的 565 个类。 第566章 567 此 API 目前已弃用。使用 ipapi.make_user_namespaces() 代替 [第 568 章] 同时地。 第569章 570:参数: 571 user_ns :类似字典,可选

C:\Python25\lib\site-packages\ipython-0.10-py2.5.egg\IPython\ipapi.pyc 在 make_session(user_ns=None, shellclass=无) 第669章 670 def make_session(user_ns =无,shellclass =无): 671 """创建但不启动 IPython 会话。 第672章 673 稍后您可以对返回的对象调用 obj.mainloop()。 第674章 675 输入: 第676章 677 - user_ns(None):用作用户命名空间的字典 与初始 678 条数据。 第679章 680 警告:当会话存在时,不应运行此命令 已经。””” 第681章 第682章 第683章 -->第684章 第685章 第686章 第687章 第688章 第689章 690 第691章 第692章 第693章 第694章 695 696 第697章 698 699

C:\Python25\lib\site-packages\ipython-0.10-py2.5.egg\IPython\Shell.pyc 在开始(user_ns =无)1226
th_mode =special_opts.pop() 1227
除了 KeyError:1228
th_mode = 'tkthread' 1229
返回 th_shell[th_mode] 1230
1231 1232 # 这是一个 应该由外部代码调用。
第1233章 第1234章 实例,处理线程 选项。 1235 1236 这是一个 工厂函数将 实例化正确的 IPython shell
第1237章 选择。需要这样一个选择器 因为 1238 个不同的 GUI 工具包需要不同的线程 处理详情。""" 1239 1240
shell = _select_shell(sys.argv) ->第1241章 1242【1243】 用于向后兼容的别名
第1244章 第1245章 IPythonShellEmbed = IPShellEmbed
第1246章的 文件 ************* > 1247 1248 1249 1250 1251 1252
1253 1254 1255 1256

C:\Python25\lib\site-packages\ipython-0.10-py2.5.egg\IPython\Shell.pyc 在 init(self=, argv=None, user_ns=无,user_global_ns=无, 调试=1,shell_class=) 58 # 等待多线程 shell 的默认超时时间(以秒为单位) 59 GUI_超时 = 10 60 61

------------------------------------------------------------ ------------------------------------------

 62 # 这个类现在很简单,但我想用它来发布

干净 63 # 接口。稍后当内部结构重新组织时,编写代码 用这个 64 # 不必改变。 65 66类IPShell: 67 """创建一个 IPython 实例。""" 68 69 防御 init(self,argv=None,user_ns=None,user_global_ns=None, 70 调试=1,shell_class=InteractiveShell): 71 self.IP = make_IPython(argv,user_ns=user_ns, 72 user_global_ns=user_global_ns, ---> 73 调试=调试,shell_class=shell_class) 全局 = 未定义 全局获取 = 未定义 全局前置 = 未定义 全局 = 未定义 全局全部 = 未定义 全局调用=未定义 全局所以=未定义 全局标头=未定义 全局使用 = 未定义 74 75 def mainloop(self,sys_exit=0,banner=None): 76 self.IP.mainloop(横幅) 77 如果 sys_exit: 78 系统退出() 79 80

------------------------------------------------------------ ------------------------------------------

 81 def Kill_embedded(self,parameter_s=''):
 82 """%kill_embedded : 永久停用当前

嵌入式 IPython。 83 84 此功能(在要求确认后)设置一个 内部标志,以便 85 嵌入式 IPython 将永远不会再次激活。这很有用 到 86 永久禁用正在调用的 shell 循环:一旦你 87 弄清楚你需要从中得到什么,然后你就可以杀死它 和程序 88 然后将在没有交互式 shell 的情况下继续运行 又来干扰了。

C:\Python25\lib\site-packages\ipython-0.10-py2.5.egg\IPython \ipmaker.pyc 中 make_IPython(argv=[r'c:\Python25\Scripts\ipython- script.py', '-i'], user_ns=无, user_global_ns=无,调试=1, rc_override=无,shell_class=, 嵌入=False,kw={}) 第755章 第756章 第757章 第758章: 第759章 第760章 第761章 % IP_rc.profile) 第762章 第763章 第764章 第765章 第766章 第767章 第768章这假设 rc 结构完整 第769章 -->第770章 第771章 第772章 第773章文件

<小时> <前><代码>774 第775章 第776章 第777章 第778章 第779章 780 第781章 第782章 第783章 第784章 第785章 C:\Python25\lib\site-packages\ipython-0.10-py2.5.egg\IPython\iplib.pyc 在 post_config_initialization(自我=) 第847章 处理为 848 ‘完成’初始化。""" 第849章 第850章 第851章 第852章 第853章 第854章 第855章 第856章 第857章 第858章 第859章 第860章 第861章 -->第862章 第863章 第864章 第865章 第866章 第867章 第868章 第869章 第870章 第871章 第872章 第873章 第874章 第875章 第876章 [第 877 章] C:\Python25\lib\site-packages\ipython-0.10-py2.5.egg\IPython\iplib.pyc 在 init_readline(self=) 1476
如果不是 readline.uses_libedit:1477 对于 rl 命令 self.rc.readline_parse_and_bind:
第1478章 “正在加载 rl:”,rlcommand # dbg 1479 readline.parse_and_bind(rlcommand)
1480 1481 # 删除一些 分隔符列表中的字符。如果我们 遭遇1482# unicode 字符,丢弃它们。 1483
定界= readline.get_completer_delims().encode("ascii", [第 1484 章] 第 1484 章 delims.translate(string._idmap,
第1485章 1486
readline.set_completer_delims(delims) 第1487章 一段时间后有怪物历史: 1488
readline.set_history_length(1000)
第1489章 尝试:1490

print '* 读取读取行历史记录' # dbg

->第1491章 1492 IOError 除外:
第1493章 尚不存在。 1494 1495
atexit.register(self.atexit_operations) 1496 删除 1497
第1498章 适用于所有平台 1499
self.set_autoindent(self.rc.autoindent) 1500 1501 定义 Ask_yes_no(自我,提示,默认= True): 第1502章 1503章 返回 True 1504 返回 Ask_yes_no(提示,默认)1505
第1506章 new_main_mod(self,ns=None):

C:\Python25\lib\site-packages\pyreadline\rlmain.pyc 在 读取历史文件(自我=, 文件名=u'C:\Home\_ipython\history') 168 169 def set_history_length(自身,长度): 170 '''设置历史文件中保存的行数。 171 172 write_history_file() 使用该值来截断 历史文件 173 保存时。负值意味着无限的历史文件 尺寸。 174 ''' 175 self._history.set_history_length(长度) 176 177 def 清除历史记录(自身): 178 '''清除阅读线历史记录''' 179 self._history.clear_history() 180 181 def read_history_file(自我, 文件名=无): 182 '''加载读取行历史文件。默认文件名是 ~/.history.''' --> 183 self._history.read_history_file(文件名) 184 185 def write_history_file(自我, 文件名=无): 186 '''保存读取行历史文件。默认文件名是 ~/.history.''' 187 self._history.write_history_file(文件名) 188 第189章 190 191 def set_completer(自我,函数=无): 192 '''设置或删除完成函数。 193 第194章 完成者 195函数;如果省略或无,则任何完成函数 已经 196已安装被删除。完成函数被称为 197 function(text, state),对于0,1,2,...中的状态,直到它 返回一个 198 非字符串值。它应该返回下一个可能的 完成

C:\Python25\lib\site-packages\pyreadline\lineeditor\history.pyc 在 读取历史文件(自我=, 文件名=u'C:\Home\_ipython\history') 55 第56章 历史长度=属性(获取历史长度,设置历史长度) 57history_cursor=属性(get_history_cursor,set_history_cursor) 58 59 def 清除历史记录(自身): 60 '''清除阅读线历史记录。''' 61 self.历史[:] = [] 62 self.history_cursor = 0 63 64 def read_history_file(自我, 文件名=无): 65 '''加载读取行历史文件。''' 66 如果文件名为 None: 67 文件名=self.history_filename 68 尝试: 69 for line in open(文件名,'r'): ---> 70 self.add_history(lineobj.ReadLineTextBuffer(ensure_unicode(line.rstrip()))) 全局 n = 未定义 全局 Xd = 未定义 全局 S = 未定义 全局 NR = 未定义 全局 i = 未定义 全局 R2 = 未定义 全局 R = 未定义 全局 t = 未定义 全局历史搜索转发=未定义 全局历史搜索向后=未定义 全局 joinR2 = 未定义 全局 maxR = 未定义 全球铸币厂=未定义 全局索引错误=未定义 全局 RX = 未定义 全局部分 = 未定义 全局 hcstartt = 未定义 全局 HCT = 未定义 全局 ht = 未定义 全局结果=未定义 全局 s = 未定义 全局 C = 未定义 全局 Python25 = 未定义 全局库=未定义 全球站点 = 未定义 全局包=未定义 全局 pyreadline = 全局行编辑器=未定义 全局历史.pyt = 未定义 全局搜索 = 未定义 全局 I = 未定义 全局 c = 未定义 全局 d = 未定义 全局搜索=未定义 全局转发=未定义 全局通过=未定义 全局 = 未定义 全球历史=未定义 全局字符串 = 全局 = 未定义 全局字符=未定义 全局之间 = 未定义 全局开始=未定义 全局电流=未定义 line = '导入系统\n' 全局点。This = 未定义 全局 a = 未定义 全局非 = 未定义 全局增量=未定义 全局搜索.By = 未定义 全局默认值=未定义 全局 this = 未定义 全局命令=未定义 全局未绑定.i = 未定义 全局 Rj = 未定义 全局 Re = 未定义 全局 q = 未定义 全局历史.pyR=未定义 全局向后=未定义 全局 Rk = 未定义 全局历史.pyR = 未定义 全局 N = 未定义 全局属性R = 未定义 全局 R4 = 未定义 全局 R5 = 未定义 全局 R7 = 未定义 全局 R8 = 未定义 全局 RC = 未定义 全局 RD = 未定义 全局 R_ = 未定义 全局 st = 未定义

按回车键退出:全局 _main_t = 未定义 全局 aaaat = 未定义 全局 aabat = 未定义 全局 aacat = 未定义 全局 akcat = 未定义 全局 bbbt = 未定义 全局 ako = 未定义 全局 ret = 未定义 全局运算符RS = 未定义 全局 sysR = 未定义 全局 pyreadline.unicode_helperR = 未定义 全局模块R = 未定义 全局异常 = 未定义 全局异常R = 未定义 全局 pyreadline.loggerR = 未定义 全局 FalseR9 = 未定义 全局对象R = 未定义 全局 RLR = 未定义 全局历史.pys = 未定义 全局模块=未定义 71 IOError 除外: 72 自我历史=[] 73 self.history_cursor = 0 74 75 def write_history_file(自我, 文件名=无): 76 '''保存读取行历史文件。''' 77 如果文件名为 None: 78 文件名=self.history_filename 79 fp = 打开(文件名,'wb') self.history[-self.history_length:] 中的行为 80: 81 fp.write(ensure_str(line.get_line_text())) 82 fp.write('\n') 83 fp.close() 84 85

C:\Python25\lib\site-packages\pyreadline\unicode_helper.pyc 在 Ensure_unicode(text='导入 sys') 5 # 根据 BSD 许可证条款分发。完整的许可证 是在 6 # 文件复制,作为该软件的一部分分发。 7

********* *************** *************** ****

 8 导入系统
  9
 10 次尝试:
 11 pyreadline_codepage=sys.stdout.encoding
 12 except AttributeError: #pdb导入readline且doctest已替换时出现此错误
 13 #stdout 与 stdout 收集器
 14 pyreadline_codepage="ascii" #假设

ascii 代码页 15 16 17 def Ensure_unicode(文本): 18 """helper 确保传递到 WriteConsoleW 的文本是 统一码""" 19 if isinstance(text, str): ---> 20 返回text.decode(pyreadline_codepage, “代替”) 21 返回文本 22 号 23 def Ensure_str(文本): 24 """使用 pyreadline_codepage 将 unicode 转换为 str""" 25 if isinstance(文本, unicode): 26 返回text.encode(pyreadline_codepage, “代替”) 27 返回文本 28 29 30 31 32 33 34 35

类型错误:decode() 参数 1 必须是 字符串,而不是 None

<小时>

糟糕,IPython 崩溃了。我们竭尽全力 使其稳定,但是...

系统会自动生成崩溃报告 使用以下内容生成 信息: - 崩溃回溯的逐字副本。 - 您在此会话期间输入历史记录的副本。 - 当前 IPython 配置的数据。

它留在名为:的文件中 'C:\Home_ipython\IPython_crash_report.txt' 如果您可以将此文件通过电子邮件发送至 开发人员,其中的信息将 帮助他们理解和 纠正问题。

您可以将其邮寄至:Fernando Perez,地址为 主题为[电子邮件受保护] “IPython 崩溃报告”。

如果您现在想这样做, 以下命令将起作用(在 Unix): mail -s 'IPython 崩溃报告' [电子邮件受保护] < C:\Home_ipython \IPython_crash_report.txt

为了确保准确跟踪此信息 问题,请提交相关报告 在: https://bugs.launchpad.net/ipython/+filebug

Questions Update: Why there is no In[1]: prompt?

Please see the following output of IPython command line in Emacs.

Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)]
Type "copyright", "credits" or "license" for more information.

IPython 0.10 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object'. ?object also works, ?? prints more.


import sys
sys.path
Out[4]: 
['',
 'C:\\Python25\\scripts',
 'C:\\Python25\\lib\\site-packages\\pyflakes-0.4.0-py2.5.egg',
 'C:\\Python25\\lib\\site-packages\\pylint-0.21.3-py2.5.egg',
 'C:\\Python25\\lib\\site-packages\\logilab_astng-0.20.3-py2.5.egg',
 'C:\\Python25\\lib\\site-packages\\logilab_common-0.52.0-py2.5.egg',
 'C:\\Python25\\lib\\site-packages\\unittest2-0.5.1-py2.5.egg',
 'C:\\Python25\\Lib\\site-packages\\pyflakes',
 'C:\\Python25\\Lib\\site-packages\\Pymacs',
 'C:\\Python25\\Lib\\site-packages\\rope',
 'C:\\Python25\\Lib\\site-packages\\ropemacs',
 'C:\\Python25\\Lib\\site-packages\\ropemode',
 'C:\\WINDOWS\\system32\\python25.zip',
 'C:\\Python25\\DLLs',
 'C:\\Python25\\lib',
 'C:\\Python25\\lib\\plat-win',
 'C:\\Python25\\lib\\lib-tk',
 'C:\\Python25',
 'C:\\Python25\\lib\\site-packages',
 'C:\\Python25\\lib\\site-packages\\win32',
 'C:\\Python25\\lib\\site-packages\\win32\\lib',
 'C:\\Python25\\lib\\site-packages\\Pythonwin',
 'C:\\Python25\\lib\\site-packages\\IPython/Extensions',
 u'C:\\Home\\_ipython']

Hi,

I am using IPython 0.10, Python 2.5, and EmacsW32 23.1 and ipython.el Rev.2927 on Windows XP. It always crashes when I invoke python-shell in Emacs. Could somebody helps on this problem? Thanks a lot!

update: I've tried the fix https://bugs.launchpad.net/ipython/+bug/290228 , but it doesn't help.

IPython crashes with the following long debugging information:

ERROR: An unexpected error occurred
while tokenizing input The following
traceback may be corrupted or invalid
The error message is: ('EOF in
multi-line statement', (14, 0))

--------------------------------------------------------------------------- TypeError
Python 2.5.2: C: \Python25\python.exe
Thu Sep 30 14:00:08 2010 A problem
occured executing Python code. Here
is the sequence of function calls
leading up to the error, with the most
recent (innermost) call last.

c:\Python25\Scripts\ipython-script.py
in ()
1
2
3
4
5
6
7
----> 8
global load_entry_point =
9 #!C:\Python25\python.exe
10 # EASY-INSTALL-ENTRY-SCRIPT: 'ipython==0.10','console_scripts','ipython'
11 requires = 'ipython==0.10'
12 import sys
13 from pkg_resources import load_entry_point
14
15 sys.exit(
16 load_entry_point('ipython==0.10',
'console_scripts', 'ipython')()
17 )
18
19
20
21
22
23
24
25
26
27
28
29
30
31

C:\Python25\lib\site-packages\ipython-0.10-py2.5.egg\IPython\ipapi.pyc
in launch_new_instance(user_ns=None,
shellclass=None)
541
542 def check_hotname(self,name):
543 if name in self.hotnames:
544 self.debug_stack( "HotName '%s' caught" % name)
545
546
547 def launch_new_instance(user_ns =
None,shellclass = None):
548 """ Make and start a new ipython instance.
549
550 This can be called even without having an already initialized
551 ipython session running.
552
553 This is also used as the egg entry point for the 'ipython'
script.
554
555 """
--> 556 ses = make_session(user_ns,shellclass)
557 ses.mainloop()
558
559
560 def make_user_ns(user_ns = None):
561 """Return a valid user interactive namespace.
562
563 This builds a dict with the minimal information needed to
operate as a
564 valid IPython user namespace, which you can pass to the
various embedding
565 classes in ipython.
566
567 This API is currently deprecated. Use
ipapi.make_user_namespaces() instead
568 to make both the local and global namespace objects
simultaneously.
569
570 :Parameters:
571 user_ns : dict-like, optional

C:\Python25\lib\site-packages\ipython-0.10-py2.5.egg\IPython\ipapi.pyc
in make_session(user_ns=None,
shellclass=None)
669
670 def make_session(user_ns = None, shellclass = None):
671 """Makes, but does not launch an IPython session.
672
673 Later on you can call obj.mainloop() on the returned object.
674
675 Inputs:
676
677 - user_ns(None): a dict to be used as the user's namespace
with initial
678 data.
679
680 WARNING: This should not be run when a session exists
already."""
681
682 import IPython.Shell
683 if shellclass is None:
--> 684 return IPython.Shell.start(user_ns)
685 return shellclass(user_ns = user_ns)
686
687
688
689
690
691
692
693
694
695
696
697
698
699

C:\Python25\lib\site-packages\ipython-0.10-py2.5.egg\IPython\Shell.pyc
in start(user_ns=None) 1226
th_mode = special_opts.pop() 1227
except KeyError: 1228
th_mode = 'tkthread' 1229
return th_shell[th_mode] 1230
1231 1232 # This is the one which
should be called by external code.
1233 def start(user_ns = None):
1234 """Return a running shell
instance, dealing with threading
options. 1235 1236 This is a
factory function which will
instantiate the proper IPython shell
1237 based on the user's threading
choice. Such a selector is needed
because 1238 different GUI
toolkits require different thread
handling details.""" 1239 1240
shell = _select_shell(sys.argv)
-> 1241 return shell(user_ns = user_ns) 1242 1243 # Some
aliases for backwards compatibility
1244 IPythonShell = IPShell 1245
IPythonShellEmbed = IPShellEmbed
1246 #************ End of
file
************* 1247 1248 1249 1250 1251 1252
1253 1254 1255 1256

C:\Python25\lib\site-packages\ipython-0.10-py2.5.egg\IPython\Shell.pyc
in
init(self=, argv=None,
user_ns=None, user_global_ns=None,
debug=1, shell_class=)
58 # Default timeout for waiting for multithreaded shells (in seconds)
59 GUI_TIMEOUT = 10
60
61

-----------------------------------------------------------------------------

 62 # This class is trivial now, but I want to have it in to publish a

clean
63 # interface. Later when the internals are reorganized, code that
uses this
64 # shouldn't have to change.
65
66 class IPShell:
67 """Create an IPython instance."""
68
69 def
init(self,argv=None,user_ns=None,user_global_ns=None,
70 debug=1,shell_class=InteractiveShell):
71 self.IP = make_IPython(argv,user_ns=user_ns,
72 user_global_ns=user_global_ns,
---> 73 debug=debug,shell_class=shell_class)
global that = undefined
global gets = undefined
global prepended = undefined
global to = undefined
global all = undefined
global calls = undefined
global so = undefined
global header = undefined
global used = undefined
74
75 def mainloop(self,sys_exit=0,banner=None):
76 self.IP.mainloop(banner)
77 if sys_exit:
78 sys.exit()
79
80

-----------------------------------------------------------------------------

 81 def kill_embedded(self,parameter_s=''):
 82     """%kill_embedded : deactivate for good the current

embedded IPython.
83
84 This function (after asking for confirmation) sets an
internal flag so that
85 an embedded IPython will never activate again. This is useful
to
86 permanently disable a shell that is being called inside a
loop: once you've
87 figured out what you needed from it, you may then kill it
and the program
88 will then continue to run without the interactive shell
interfering again.

C:\Python25\lib\site-packages\ipython-0.10-py2.5.egg\IPython
\ipmaker.pyc in
make_IPython(argv=[r'c:\Python25\Scripts\ipython-
script.py', '-i'], user_ns=None,
user_global_ns=None, debug=1,
rc_override=None, shell_class=,
embedded=False, kw={})
755 IP_rc.banner = 0
756 if IP_rc.banner:
757 BANN_P = IP.BANNER_PARTS
758 else:
759 BANN_P = []
760
761 if IP_rc.profile: BANN_P.append('IPython profile: %s\n'
% IP_rc.profile)
762
763 # add message log (possibly empty)
764 if msg.summary: BANN_P.append(msg.summary)
765 # Final banner is a string
766 IP.BANNER = '\n'.join(BANN_P)
767
768 # Finalize the IPython instance. This assumes the rc
structure is fully
769 # in place.
--> 770 IP.post_config_initialization()
771
772 return IP
773 #**************
end of file


774
775
776
777
778
779
780
781
782
783
784
785

C:\Python25\lib\site-packages\ipython-0.10-py2.5.egg\IPython\iplib.pyc
in
post_config_initialization(self=)
847 This is called after the configuration files have been
processed to
848 'finalize' the initialization."""
849
850 rc = self.rc
851
852 # Object inspector
853 self.inspector = OInspect.Inspector(OInspect.InspectColors,
854 PyColorize.ANSICodeColors,
855 'NoColor',
856 rc.object_info_string_level)
857
858 self.rl_next_input = None
859 self.rl_do_indent = False
860 # Load readline proper
861 if rc.readline:
--> 862 self.init_readline()
863
864 # local shortcut, this is used a LOT
865 self.log = self.logger.log
866
867 # Initialize cache, set in/out prompts and printing system
868 self.outputcache = CachedOutput(self,
869 rc.cache_size,
870 rc.pprint,
871 input_sep = rc.separate_in,
872 output_sep = rc.separate_out,
873 output_sep2 = rc.separate_out2,
874 ps1 = rc.prompt_in1,
875 ps2 = rc.prompt_in2,
876 ps_out = rc.prompt_out,
877 pad_left = rc.prompts_pad_left)

C:\Python25\lib\site-packages\ipython-0.10-py2.5.egg\IPython\iplib.pyc
in
init_readline(self=) 1476
if not readline.uses_libedit: 1477
for rlcommand in
self.rc.readline_parse_and_bind:
1478 #print
"loading rl:",rlcommand # dbg 1479
readline.parse_and_bind(rlcommand)
1480 1481 # Remove some
chars from the delimiters list. If we
encounter 1482 #
unicode chars, discard them. 1483
delims =
readline.get_completer_delims().encode("ascii",
"ignore") 1484 delims =
delims.translate(string._idmap,
1485 self.rc.readline_remove_delims)
1486
readline.set_completer_delims(delims)
1487 # otherwise we end up
with a monster history after a while:
1488
readline.set_history_length(1000)
1489 try: 1490

print '* Reading readline history' # dbg

-> 1491 readline.read_history_file(self.histfile)
1492 except IOError:
1493 pass # It
doesn't exist yet. 1494 1495
atexit.register(self.atexit_operations)
1496 del atexit 1497
1498 # Configure auto-indent
for all platforms 1499
self.set_autoindent(self.rc.autoindent)
1500 1501 def
ask_yes_no(self,prompt,default=True):
1502 if self.rc.quiet: 1503
return True 1504 return
ask_yes_no(prompt,default) 1505
1506 def
new_main_mod(self,ns=None):

C:\Python25\lib\site-packages\pyreadline\rlmain.pyc
in
read_history_file(self=,
filename=u'C:\Home\_ipython\history')
168
169 def set_history_length(self, length):
170 '''Set the number of lines to save in the history file.
171
172 write_history_file() uses this value to truncate the
history file
173 when saving. Negative values imply unlimited history file
size.
174 '''
175 self._history.set_history_length(length)
176
177 def clear_history(self):
178 '''Clear readline history'''
179 self._history.clear_history()
180
181 def read_history_file(self,
filename=None):
182 '''Load a readline history file. The default filename is
~/.history.'''
--> 183 self._history.read_history_file(filename)
184
185 def write_history_file(self,
filename=None):
186 '''Save a readline history file. The default filename is
~/.history.'''
187 self._history.write_history_file(filename)
188
189 #Completer functions
190
191 def set_completer(self, function=None):
192 '''Set or remove the completer function.
193
194 If function is specified, it will be used as the new
completer
195 function; if omitted or None, any completer function
already
196 installed is removed. The completer function is called as
197 function(text, state), for state in 0, 1, 2, ..., until it
returns a
198 non-string value. It should return the next possible
completion

C:\Python25\lib\site-packages\pyreadline\lineeditor\history.pyc
in
read_history_file(self=,
filename=u'C:\Home\_ipython\history')
55
56 history_length=property(get_history_length,set_history_length)
57 history_cursor=property(get_history_cursor,set_history_cursor)
58
59 def clear_history(self):
60 '''Clear readline history.'''
61 self.history[:] = []
62 self.history_cursor = 0
63
64 def read_history_file(self,
filename=None):
65 '''Load a readline history file.'''
66 if filename is None:
67 filename=self.history_filename
68 try:
69 for line in open(filename, 'r'):
---> 70 self.add_history(lineobj.ReadLineTextBuffer(ensure_unicode(line.rstrip())))
global n = undefined
global Xd = undefined
global S = undefined
global NR = undefined
global i = undefined
global R2 = undefined
global R = undefined
global t = undefined
global history_search_forwardt = undefined
global history_search_backwardt = undefined
global joinR2 = undefined
global maxR = undefined
global mint = undefined
global IndexError = undefined
global RX = undefined
global partialt = undefined
global hcstartt = undefined
global hct = undefined
global ht = undefined
global result = undefined
global s = undefined
global C = undefined
global Python25 = undefined
global lib = undefined
global site = undefined
global packages = undefined
global pyreadline =
global lineeditor = undefined
global history.pyt = undefined
global search = undefined
global I = undefined
global c = undefined
global d = undefined
global Search = undefined
global forward = undefined
global through = undefined
global the = undefined
global history = undefined
global string =
global of = undefined
global characters = undefined
global between = undefined
global start = undefined
global current = undefined
line = 'import sys\n'
global point.This = undefined
global a = undefined
global non = undefined
global incremental = undefined
global search.By = undefined
global default = undefined
global this = undefined
global command = undefined
global unbound.i = undefined
global Rj = undefined
global Re = undefined
global q = undefined
global history.pyR
= undefined
global backward = undefined
global Rk = undefined
global history.pyR = undefined
global N = undefined
global propertyR = undefined
global R4 = undefined
global R5 = undefined
global R7 = undefined
global R8 = undefined
global RC = undefined
global RD = undefined
global R_ = undefined
global s.t = undefined

Press enter to exit: global
_main_t = undefined
global aaaat = undefined
global aabat = undefined
global aacat = undefined
global akcat = undefined
global bbbt = undefined
global ako = undefined
global ret = undefined
global operatorRS = undefined
global sysR = undefined
global pyreadline.unicode_helperR = undefined
global modulesR = undefined
global exceptionst = undefined
global ExceptionR = undefined
global pyreadline.loggerR = undefined
global FalseR9 = undefined
global objectR = undefined
global RLR = undefined
global history.pys = undefined
global module = undefined
71 except IOError:
72 self.history = []
73 self.history_cursor = 0
74
75 def write_history_file(self,
filename=None):
76 '''Save a readline history file.'''
77 if filename is None:
78 filename=self.history_filename
79 fp = open(filename, 'wb')
80 for line in self.history[-self.history_length:]:
81 fp.write(ensure_str(line.get_line_text()))
82 fp.write('\n')
83 fp.close()
84
85

C:\Python25\lib\site-packages\pyreadline\unicode_helper.pyc
in ensure_unicode(text='import sys')
5 # Distributed under the terms of the BSD License. The full license
is in
6 # the file COPYING, distributed as part of this software.
7

*******************************************

  8 import sys
  9
 10 try:
 11     pyreadline_codepage=sys.stdout.encoding
 12 except AttributeError:        #This error occurs when pdb imports readline and doctest has replaced
 13                               #stdout with stdout collector
 14     pyreadline_codepage="ascii"   #assume

ascii codepage
15
16
17 def ensure_unicode(text):
18 """helper to ensure that text passed to WriteConsoleW is
unicode"""
19 if isinstance(text, str):
---> 20 return text.decode(pyreadline_codepage,
"replace")
21 return text
22
23 def ensure_str(text):
24 """Convert unicode to str using pyreadline_codepage"""
25 if isinstance(text, unicode):
26 return text.encode(pyreadline_codepage,
"replace")
27 return text
28
29
30
31
32
33
34
35

TypeError: decode() argument 1 must be
string, not None


Oops, IPython crashed. We do our best
to make it stable, but...

A crash report was automatically
generated with the following
information:
- A verbatim copy of the crash traceback.
- A copy of your input history during this session.
- Data on your current IPython configuration.

It was left in the file named:
'C:\Home_ipython\IPython_crash_report.txt'
If you can email this file to the
developers, the information in it will
help them in understanding and
correcting the problem.

You can mail it to: Fernando Perez at
[email protected] with the subject
'IPython Crash Report'.

If you want to do it now, the
following command will work (under
Unix): mail -s 'IPython Crash Report'
[email protected] <
C:\Home_ipython
\IPython_crash_report.txt

To ensure accurate tracking of this
issue, please file a report about it
at:
https://bugs.launchpad.net/ipython/+filebug

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北笙凉宸 2024-10-03 09:13:40

安装 pyreadline 应该会有所帮助。

Installing pyreadline should help.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文