2015-10-08 14 views
8

Mỗi khi tôi chạy python hoặc python3 với một giao diện điều khiển tương tác, việc hiển thị các cửa sổ trở nên đồng bộ gần như ngay lập tức sau khi tương tác đầu tiên hoặc thứ hai:Hiển thị đầu vào của đầu vào không đồng bộ trong khi/sau khi sử dụng python? (Tạm thời sửa chữa = `reset`)

>>> [1,2,3] 
>>> [1, 2, 3] 
print('hi') 
>>> hi 

Sau đó, khi tôi thoát ra khỏi python, hành vi này chuyển sang bash, với việc bổ sung khi bạn nhập, không có gì xuất hiện trên màn hình, nhưng nó vẫn sẽ chạy. Trong ví dụ sau, tôi gõ date và sau đó history | tail -n3:

$ Thu Oct 8 07:55:47 CEST 2015 
$ 488 python 
    489 date 
    490 history | tail -n3 

Tuy nhiên, sau khi nhập reset, mọi thứ trở lại bình thường.

Không cần phải nói, hành vi này rất khó chịu. Nguyên nhân là gì, và làm thế nào tôi có thể sửa chữa nó?

Tôi đang sử dụng OS X. Sử dụng iTerm hoặc được xây dựng trong Terminal.app đều cho cùng một hành vi. Xây dựng trăn của tôi là từ macports. Vấn đề này không xuất hiện với /usr/bin/python (python 2.7.2, đi kèm với OS X).

============================

Edit: Nếu tôi sử dụng zsh, sau đó python vẫn có vấn đề , nhưng mọi thứ hoạt động tốt trong zsh sau khi tôi thoát ra khỏi python.

$TERMxterm-256color trong cả hai bashzsh.

+1

lẽ python của bạn mà kết quả đầu ra ký tự điều khiển và thay đổi cấu hình của thiết bị đầu cuối của bạn. Có thể ở trong biểu ngữ python. Bạn có thể thử 's = $ (stty -g)' trước khi khởi chạy python và 'stty $ s' sau, để lưu và khôi phục cấu hình đầu cuối. Nhưng nó sẽ không giúp đỡ trong phiên tương tác python của bạn ... –

+1

làm thế nào để bạn thoát python? –

+1

@ ÁlvaroGutiérrez Tôi đã thử thoát với ctrl + D và 'exit()' và cả hai đều mang lại kết quả tương tự. – reynoldsnlp

Trả lời

1

Như trong câu trả lời của tôi trong AskDifferent đã có một lỗi trong python gần đây được xây dựng dưới Macports khi câu hỏi được viết do Macports bug này vì nó không bao gồm readline (vì lý do giấy phép)

này hiện đã được cố định bởi tạo biến thể + readline và làm cho biến thể này là mặc định

0

Chỉ cần thử lệnh stty sane trong trình bao. Nó luôn giúp tôi.

1

@Mark có giải thích.

Đối với việc sửa chữa:

port selfupdate 
# port install python(26|27|34|35) +readline 
port install python27 +readline 
Các vấn đề liên quan