2014-10-27 31 views
0

我只是嘗試了os.dup2()函數來重定向輸出,當我在os.dup2(3,1),其中我的ipython( 2.7)似乎並不喜歡。 墜毀,現在也不會再次啓動,產生錯誤:iPython將不會啓動後使用os.dup2()

Traceback (most recent call last): 
    File "/usr/bin/ipython", line 8, in <module> 
    launch_new_instance() 
    File "/usr/lib/python2.7/dist-packages/IPython/frontend/terminal/ipapp.py", line 402, in launch_new_instance 
    app.initialize() 
    File "<string>", line 2, in initialize 
    File "/usr/lib/python2.7/dist-packages/IPython/config/application.py", line 84, in catch_config_error 
    return method(app, *args, **kwargs) 
    File "/usr/lib/python2.7/dist-packages/IPython/frontend/terminal/ipapp.py", line 312, in initialize 
    self.init_shell() 
    File "/usr/lib/python2.7/dist-packages/IPython/frontend/terminal/ipapp.py", line 332, in init_shell 
    ipython_dir=self.ipython_dir) 
    File "/usr/lib/python2.7/dist-packages/IPython/config/configurable.py", line 318, in instance 
    inst = cls(*args, **kwargs) 
    File "/usr/lib/python2.7/dist-packages/IPython/frontend/terminal/interactiveshell.py", line 183, in __init__ 
user_module=user_module, custom_exceptions=custom_exceptions 
    File "/usr/lib/python2.7/dist-packages/IPython/core/interactiveshell.py", line 456, in __init__ 
    self.init_readline() 
    File "/usr/lib/python2.7/dist-packages/IPython/core/interactiveshell.py", line 1777, in init_readline 
    self.refill_readline_hist() 
    File "/usr/lib/python2.7/dist-packages/IPython/core/interactiveshell.py", line 1789, in refill_readline_hist 
    include_latest=True): 
    File "/usr/lib/python2.7/dist-packages/IPython/core/history.py", line 256, in get_tail 
    return reversed(list(cur)) 
DatabaseError: database disk image is malformed 

If you suspect this is an IPython bug, please report it at: 
    https://github.com/ipython/ipython/issues 
or send an email to the mailing list at [email protected] 

You can print a more detailed traceback right now with "%tb", or use "%debug" 
to interactively debug it. 

Extra-detailed tracebacks for bug-reporting purposes can be enabled via: 
    c.Application.verbose_crash=True 

誰能幫助我嗎?

+0

看起來像fd 3是您的IPython歷史數據庫,並且您將stdout重定向到它並將其損壞。爲了讓它重新開始,刪除或重命名'〜/ .ipython/profile_default/history.sqlite' – 2014-10-27 19:33:50

+0

感謝您的迴應! 我無法在我的系統上找到該文件...好吧,我嘗試重新安裝ipython,因爲(它應該刪除它,對不對?)但它仍然沒有啓動...儘管如此,python本身也能正常工作。 有沒有其他建議? – wollex 2014-10-27 22:47:42

+0

如果您有某些版本的IPython,它可能位於'〜/ .config/ipython/profile_default/history.sqlite'處。 – 2014-10-27 23:24:11

回答

0

轉貼作爲一個答案:

這看起來像FD 3是你的IPython的歷史數據庫,以及您重定向標準輸出到它敗壞它。

爲了讓它再次開始,請刪除或重命名~/.ipython/profile_default/history.sqlite(或在Linux上的某些IPython版本上爲~/.config/ipython/profile_default/history.sqlite)。