Эта проблема
Просто открывая и закрывая суб-оболочку Python, можно завинтить мою оболочку (или, возможно, терминал?). Кажется, это устраняет возможность оболочки печатать любой вводимый мной текст, в том числе переводы строк после ввода команды.
Проблема возникает для python3.4, python2.7 и python2.6, но не для python2.5.
Это никогда не происходило раньше (что я заметил) и не происходит с другими пакетами программного обеспечения, которые я использовал (VIM, Emacs и т. Д.).
Я подтвердил, что он ломается, используя стандартный терминал Apple (версия 2.2.3 [303.2]), iTerm2 (сборка 2.1.1) и XTerm (269).
Интересно, что он ломается bash
, но не zsh
или csh
.
Пример поведения
Чтобы продемонстрировать, я делаю следующее ( $SHELL
есть /bin/bash
):
- Беги
which python3.4
. - Беги
python3.4
. - Нажмите клавишу Return один раз, затем войдите
exit()
в оболочку Python. - Хит Возврат еще два раза.
- Введите
python3.4 --version
.
Вот то, что я вижу для нескольких основных версий Python, которые я установил:
Python3.4 - проблемный
myself@localhost:~$ which python3.4
python3.4 is /opt/local/bin/python3.4
python3.4 is /opt/local/bin/python3.4
myself@localhost:~$ python3.4
Python 3.4.3 (default, Aug 24 2015, 17:25:38)
[GCC 4.2.1 Compatible Apple Clang 3.0 (tags/Apple/clang-211.12)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> exit()
>>> myself@localhost:~$ myself@localhost:~$ myself@localhost:~$ Python 3.4.3
myself@localhost:~$
Python2.7 - проблемный
myself@localhost:~$ which python2.7
python2.7 is /opt/local/bin/python2.7
python2.7 is /usr/local/bin/python2.7
python2.7 is /usr/bin/python2.7
python2.7 is /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
python2.7 is /usr/bin/python2.7
python2.7 is /usr/local/bin/python2.7
python2.7 is /opt/local/bin/python2.7
myself@localhost:~$ python2.7
Python 2.7.10 (default, Aug 24 2015, 11:54:49)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> exit()
>>> myself@localhost:~$ myself@localhost:~$ myself@localhost:~$ Python 2.7.10
myself@localhost:~$
Python2.6 - проблемный
myself@localhost:~$ which python2.6
python2.6 is /opt/local/bin/python2.6
python2.6 is /usr/bin/python2.6
python2.6 is /usr/bin/python2.6
python2.6 is /opt/local/bin/python2.6
myself@localhost:~$ python2.6
Python 2.6.9 (unknown, Aug 24 2015, 17:53:21)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.1.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> exit()
>>> myself@localhost:~$ myself@localhost:~$ myself@localhost:~$ Python 2.6.9
myself@localhost:~$
Python2.5 - это работает!
myself@localhost:~$ which python2.5
python2.5 is /usr/bin/python2.5
python2.5 is /usr/bin/python2.5
myself@localhost:~$ python2.5
Python 2.5.6 (r256:88840, Jul 31 2011, 19:30:45)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> exit()
myself@localhost:~$
myself@localhost:~$
myself@localhost:~$ python2.5 --version
Python 2.5.6
myself@localhost:~$
Запуск zsh
или csh
кажется, работает нормально:
Zsh
myself@localhost:~$ zsh
localhost% which python3.4
/opt/local/bin/python3.4
localhost%
localhost% python3.4
Python 3.4.3 (default, Aug 24 2015, 17:25:38)
[GCC 4.2.1 Compatible Apple Clang 3.0 (tags/Apple/clang-211.12)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> exit()
>>> %
ra%
ra%
ra% python3.4 --version
Python 3.4.3
localhost% exit
myself@localhost:~$
Csh
myself@localhost:~$ csh
Running csh
[localhost:~] myself% which python3.4
/opt/local/bin/python3.4
[localhost:~] myself% python3.4
Python 3.4.3 (default, Aug 24 2015, 17:25:38)
[GCC 4.2.1 Compatible Apple Clang 3.0 (tags/Apple/clang-211.12)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> exit()
>>> [localhost:~] myself%
[localhost:~] myself%
[localhost:~] myself% python3.4 --version
Python 3.4.3
[localhost:~] myself% exit
exit
Мое мышление до сих пор:
Тот факт, что поведение для трех терминалов выглядит одинаково, заставляет меня думать, что это не проблема терминала.
Тот факт, что он работает в Zsh и Csh, но не в Bash, заставляет меня думать, что это проблема оболочки.
Тот факт, что все версии, которые ломаются (3.4, 2.7, 2.6), установлены в /opt/local/bin/
(обычное место установки MacPorts), а версия, в которой работает (2.5), установлена /usr/bin/
, заставляет задуматься о том, есть ли какое-то недавнее обновление MacPorts (возможно, оно поднялось до За 20 дней до 24 августа 2015 г. ??) возможно, что-то сломалось, из-за чего Python и Bash не работают вместе!
exit()
,quit()
илиcontrol D
типаreset
в строке (он не будет вторит обратно к терминалу) и ждать , пока не появится окно снова появляется.Ответы:
Кажется, есть проблема с последними сборками Python для Macports, см. Эту ошибку
Обходной путь должен установить pyXX-readline (py35-readline был создан только для этой ошибки)
Другой способ - установить Python, добавив вариант + readline.
источник