Mam problem ze swoją literą „b” w powłoce Pythona w OS X. Nie mogę wpisać „b”, ale „B” działało dobrze.
Jak mogę rozwiązać ten problem?
Mam problem ze swoją literą „b” w powłoce Pythona w OS X. Nie mogę wpisać „b”, ale „B” działało dobrze.
Jak mogę rozwiązać ten problem?
Odpowiedzi:
Problematyczna linia w twoim .pythonstartup
jest podobna do:
readline.parse_and_bind("bind ^I rl_complete") # darwin libedit
To .pythonstartup
będzie to naprawić ...
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")
Po pierwsze, tak się nie stało, dopóki nie zaktualizowałem Pythona do wersji 2.7.1 do wersji 2.7.3. To powiedziawszy, poprawka jest na linii:
stara linia:
if(sys.platform == 'darwin'): #FIX
Nowa linia:
if(sys.platform == 'darwin') and 'libedit' in readline.__doc__: #FIX
Pełny kod w moim ~ / .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
Mam ten sam problem. Dzieje się tak, gdy używasz wersji Pythona w MacPorts w systemie Snow Leopard.
Nie widzę tego problemu w Pythonie Apple, który jest dostarczany z Mac OS X. Dlatego obejściem powinno być ustawienie PYTHONPATH
wskazywania na pakiety MacPorts:
/opt/local/lib/python/site-packages:/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/
(lub inną wersję Pythona) i użyj Pythona Apple.
Niestety obejście to nie jest mądre.
Apple zakłada, że jego wersja pozostaje niezmieniona podczas aktualizacji i innych funkcji. Zamiast tego zaleca się, aby w przypadku uaktualnienia lub rozszerzenia Pythona zainstalować wersję lokalną w /opt
folderze domowym lub w folderze domowym.
Mam również ten sam problem i nie korzystam z wersji Pythona w wersji MacPorts.
Korzystam z najnowszej wersji vpython
Visual Pythona ze strony www.vpython.org pod Mac OX X Lion działającej w najnowszym MacBooku Air (generacja 3).
Zainstalowałem vpython używając ich najnowszego pliku binarnego i używając ich instrukcji. Jest dostarczany z instalatorem, więc wskaż i kliknij. To jest zmodyfikowana wersja Python 2.7.1. Jest to wersja 32-bitowa. (Wydaje mi się, że nie przenieśli go do 64 bitów). Następnie zainstalowałem VPython-Mac-Py2.7-5.71. Śledziłem to przez scipy z www.scipy.org i matplotlib z matplotlib.sourceforge.net Wszystkie te instalacje korzystają z instalatora.
Kiedy uruchamiam Pythona z ich narzędzia programistycznego, bezczynności lub wariantu vpython, vidle, nie mam problemów. Jeśli otworzę terminal i uruchomię python z powłoki bash, powłoka nie rozpozna klawisza „b” na klawiaturze. Daje dźwięk „dzwonka” zamiast wpisywania „znaku b”. Możesz jednak wpisać literę „B”. Wygląda na to, że ten klucz jest zamapowany na jakiś niepoprawny „nie wyświetlany” znak, być może znak „dzwonka” w starym kodzie ASCII.
Próbowałem zmienić emulację na xterm, vt100, vt102. Grałem też przy użyciu różnych schematów kodowania, takich jak UTF-8. Nacisnąłem także inną kombinację klawiszy specjalnych, takich jak Command-b itp. Nic nie działało.
Moim jedynym obejściem jest pisanie skryptów bezczynnie lub vidle.
Mam nadzieję, że to pomoże wyjaśnić problem.