2016-12-30 42 views
3

我正在使用最新的emacs25.1.1與最新的archlinux。使用emacs時的凌亂代碼ipython劣質的Python

然而,當我編輯的Python腳本,並通過使用Ctrl-Enter鍵將其發送到下IPython中,下的Python告訴我一個醜陋的亂碼termial indicater,如:

Python 3.5.2 (default, Nov 7 2016, 11:31:36) 
Type "copyright", "credits" or "license" for more information. 

IPython 5.1.0 -- An enhanced Interactive Python. 
?   -> Introduction and overview of IPython's features. 
%quickref -> Quick reference. 
help  -> Python's own help system. 
object? -> Details about 'object', use 'object??' for extra details. 

[JIn [1]: import numpy as np[26D 
[J 
[6n[JIn [2]: [8D[8C[8D[J[6n[JIn [2]: [8D[8C 

當按下這個輸入劣質蟒蛇,它表明:

error in process filter: Args out of range: " 
^[[6n^[[0m^[[0m^[[J^[[0;38;5;28mIn [^[[0;38;5;28m: ^[[8D^[[8C[[0m^[[0m", 128 

我改變emacs的區域從:

LANG=zh_CN.UTF-8 
LC_CTYPE="zh_CN.UTF-8" 
LC_NUMERIC=en_US.UTF-8 
LC_TIME=en_US.UTF-8 
LC_COLLATE="zh_CN.UTF-8" 
LC_MONETARY=en_US.UTF-8 
LC_MESSAGES="zh_CN.UTF-8" 
LC_PAPER=en_US.UTF-8 
LC_NAME="zh_CN.UTF-8" 
LC_ADDRESS="zh_CN.UTF-8" 
LC_TELEPHONE="zh_CN.UTF-8" 
LC_MEASUREMENT=en_US.UTF-8 
LC_IDENTIFICATION="zh_CN.UTF-8" 
LC_ALL= 

要:

LANG=en_US.UTF-8 
LC_CTYPE="en_US.UTF-8" 
LC_NUMERIC=en_US.UTF-8 
LC_TIME=en_US.UTF-8 
LC_COLLATE="en_US.UTF-8" 
LC_MONETARY=en_US.UTF-8 
LC_MESSAGES="en_US.UTF-8" 
LC_PAPER=en_US.UTF-8 
LC_NAME="en_US.UTF-8" 
LC_ADDRESS="en_US.UTF-8" 
LC_TELEPHONE="en_US.UTF-8" 
LC_MEASUREMENT=en_US.UTF-8 
LC_IDENTIFICATION="en_US.UTF-8" 
LC_ALL= 

用命令$ 「出口LANGUAGE =」 EN_US:恩 「& & emacs的」 $,沒有幫助解決亂碼。

我也嘗試在emacs中使用python-mode.et或elpy包,都顯示相同的 凌亂的終端代碼。

此外,python2.7也試過,沒有工作:

Python 2.7.12 (default, Nov 7 2016, 11:55:55) 
Type "copyright", "credits" or "license" for more information. 

IPython 5.1.0 -- An enhanced Interactive Python. 
?   -> Introduction and overview of IPython's features. 
%quickref -> Quick reference. 
help  -> Python's own help system. 
object? -> Details about 'object', use 'object??' for extra details. 

[JIn [1]: import numpy as np[26D 
[J 
[6n[JIn [2]: [8D[8C[8D[J[6n[JIn [2]: [8D[8C 

是最新的IPython的問題?

最後,消息在Emacs粘貼在這裏:

error in process filter: ansi-color-filter-apply: Args out of range: "Python 3.5.2 (default, Nov 7 2016, 11:31:36) 
Type \"copyright\", \"credits\" or \"license\" for more information. 

IPython 5.1.0 -- An enhanced Interactive Python. 
?   -> Introduction and overview of IPython's features. 
%quickref -> Quick reference. 
help  -> Python's own help system. 
object? -> Details about 'object', use 'object??' for extra details. 

[6n[0m 
[0m[J 
[0m", 408 
error in process filter: Args out of range: "Python 3.5.2 (default, Nov 7 2016, 11:31:36) 
Type \"copyright\", \"credits\" or \"license\" for more information. 

IPython 5.1.0 -- An enhanced Interactive Python. 
?   -> Introduction and overview of IPython's features. 
%quickref -> Quick reference. 
help  -> Python's own help system. 
object? -> Details about 'object', use 'object??' for extra details. 

[6n[0m 
[0m[J 
[0m", 408 
error in process filter: ansi-color-filter-apply: Args out of range: "[0m[0m[J[0;38;5;28mIn [[0;38;5;10;1m1[0;38;5;28m]: [0;38;5;28;1mimport[0m [0;38;5;32;1mnumpy[0m [0;38;5;28;1mas[0m [0;38;5;32;1mnp[26D[0m 
[J[0m", 177 
error in process filter: Args out of range: "[0m[0m[J[0;38;5;28mIn [[0;38;5;10;1m1[0;38;5;28m]: [0;38;5;28;1mimport[0m [0;38;5;32;1mnumpy[0m [0;38;5;28;1mas[0m [0;38;5;32;1mnp[26D[0m 
[J[0m", 177 
error in process sentinel: elpy-rpc--default-error-callback: peculiar error: "exited abnormally with code 1" 
error in process sentinel: peculiar error: "exited abnormally with code 1" 
error in process filter: ansi-color-filter-apply: Args out of range: #("[JIn [1]: import numpy as np[26D 
[J 


[6n[0m[0m[J[0;38;5;28mIn [[0;38;5;10;1m2[0;38;5;28m]: [8D[8C[0m[0m[8D[J[0m[6n[0m[0m[J[0;38;5;28mIn [[0;38;5;10;1m2[0;38;5;28m]: [8D[8C[0m" 0 38 (fontified nil) 38 39 (fontified nil)), 283 
error in process filter: Args out of range: #("[JIn [1]: import numpy as np[26D 
[J 


[6n[0m[0m[J[0;38;5;28mIn [[0;38;5;10;1m2[0;38;5;28m]: [8D[8C[0m[0m[8D[J[0m[6n[0m[0m[J[0;38;5;28mIn [[0;38;5;10;1m2[0;38;5;28m]: [8D[8C[0m" 0 38 (fontified nil) 38 39 (fontified nil)), 283 
+0

使用python-mode.el,Emacs25.1進行檢查:看起來像原因在別處。 –

+0

[this](http://emacs.stackexchange.com/q/24453)能解決你的問題嗎? – wlnirvana

回答

0

從輸出和錯誤消息,它會出現,由於某些原因,你的設置不處理由IPython中使用的ANSI轉義序列。 Assumiing您使用pythong模式,確保您有以下

(setq python-shell-interpreter "ipython" 
     python-shell-interpreter-args "-i") 

爲了消除您的init文件其他可能的設置,我會註釋掉,除了上述的一切,然後再試一次。如果它有效,那麼在你的設置中會有一些東西與emacs處理由ipython輸出的ansi控制序列的能力混淆。如果它仍然不起作用,那麼你可能需要記錄一個錯誤報告。

還有一些事情可以解決此問題。

  1. 嘗試添加--no-顏色信息切換到IPython的。這將減少控制字符ipython輸出的數量,這就限制了這個問題。
  2. 考慮只使用python而不是ipython作爲低級過程。你看到的問題是由於ipython使用ansi控制字符來提供更好的shell。然而,emacs實際上是你的shell,你可能會更好地讓emacs處理接口並使用更簡單的劣質外殼
  3. Emacs Wiki對如何設置功能強大的python開發環境有相當詳細的描述。使用簡單的ipython/python低級過程是最基本的方法。爲了獲得更完整的開發環境,您可以更好地安排其他一些軟件包。
+0

我認爲這是emacs25的錯誤?我對.emacs中的所有python安裝程序進行了註釋,然後對M-py-send-region-ipython進行了註釋,結果發生了同樣的問題。添加你的建議,問題仍然存在。此外,蟒蛇亞洲運作良好。 – cwind

+0

它可能不只是一個python特定的配置。確保你已經註釋掉了除ipython特定的配置之外的所有配置,然後重新測試。 Emacs 25.1是全新的,因此一個bug是可能的。但是,它也被很多python開發人員使用,所以與配置文件中的錯誤相比,發現錯誤的機率很小。要記錄錯誤報告,您需要顯示最低配置,以便emacs開發人員可以將其複製。注意你的帖子中的註釋,表明至少有一個emacs 25.1用戶無法重現你的問題,這表明本地配置問題 –

+0

@cwind請從emacs -Q載入python-mode.el併發給我們一個錯誤報告,如果它仍然發生。 –