8

У меня проблема с моим буквой "b" в оболочке Python в OS X. Я не могу набрать "b", но "B" работал нормально.

Как я могу решить эту проблему?

4 ответа4

8

Проблемная строка в вашем .pythonstartup выглядит примерно так:

 readline.parse_and_bind("bind ^I rl_complete") # darwin libedit

Этот .pythonstartup это исправит ...

try:
    import readline
except ImportError:
    print "Module readline not available."
else:
    import rlcompleter
    if 'libedit' in readline.__doc__:
        readline.parse_and_bind("bind ^I rl_complete")
    else:
        readline.parse_and_bind("tab: complete")
2

Во-первых, этого не произошло, пока я не обновил python 2.7.1 до 2.7.3. Тем не менее, исправление на линии:

старая строка:

if(sys.platform == 'darwin'): #FIX

новая линия:

if(sys.platform == 'darwin') and 'libedit' in readline.__doc__: #FIX

Полный код в моем ~/.pythonrc

import atexit
import os
try:
    import readline
except ImportError:
    print "Module readline not available."
else:
    import rlcompleter
    import sys
    if(sys.platform == 'darwin') and 'libedit' in readline.__doc__: #FIX
    # OSX
        readline.parse_and_bind ("bind ^I rl_complete")
    else:
    # Linux
        readline.parse_and_bind("tab: complete")

historyPath = os.path.expanduser("~/.pyhistory")

def save_history(historyPath=historyPath):
    readline.write_history_file(historyPath)

if os.path.exists(historyPath):
    readline.read_history_file(historyPath)

atexit.register(save_history)
del atexit, save_history, historyPath
1

У меня такая же проблема. Это происходит, когда вы используете версию Python для MacPorts в Snow Leopard.

Я не вижу этой проблемы в Apple Python, которая поставляется с Mac OS X. Поэтому, обходной путь должен заключаться в том, чтобы установить PYTHONPATH указывающий на пакеты MacPorts:

/opt/local/lib/python/site-packages:/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/ 

(или другая версия Python) и использовать Python от Apple.

1

К сожалению, обходной путь не является мудрым.

Apple предполагает, что ее версия не изменяется при выполнении обновлений и других функций. Вместо этого рекомендуется, чтобы, если вы хотите обновить Python или развернуть его, вы устанавливаете локальную версию, либо в /opt либо в вашей домашней папке.

У меня также есть та же проблема, и я не использую версию Python для MacPorts.


Я использую последнюю версию vpython , visual python, с www.vpython.org под Mac OX X Lion, работающую на последнем MacBook Air (поколение 3).

Я установил vpython, используя их последние двоичные файлы и используя их инструкции. Он поставляется с установщиком, так что наведите и нажмите. Это модифицированная версия Python 2.7.1. Это 32-битная версия. (Я считаю, что они не портировали его на 64 бита). Затем я установил VPython-Mac-Py2.7-5.71. За этим последовали scipy с www.scipy.org и matplotlib с matplotlib.sourceforge.net. Все эти установки используют установщик.

Когда я запускаю python из их средства разработки, бездействия или из варианта vpython, vidle, у меня нет проблем. Если я открываю терминал и запускаю python из оболочки bash, оболочка не распознает клавишу "b" на клавиатуре. Это даст вам звук "звонка" вместо того, чтобы вводить "символ b". Тем не менее, вы можете ввести букву "B". Похоже, что этот ключ сопоставлен с каким-то неправильным неотображаемым "символом", возможно, "колокольчиком" в старом коде ASCII.

Я попытался изменить эмуляцию на xterm, vt100, vt102. Я также играл с различными схемами кодирования, такими как просто использование UTF-8. Я также нажимал различные комбинации специальных клавиш, таких как command-b и т.д.

Мой единственный обходной путь - писать сценарии бездействия или виджета.

Я надеюсь, что это помогает прояснить проблему.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .