Co rozumiesz przez „nie można pisać”? Coś fizycznie powstrzymuje cię przed naciśnięciem przycisku b, chyba że naciśniesz również Shift? A może nie ma efektu po naciśnięciu przycisku? Czy pojawia się komunikat o błędzie, gdy wiersz zawiera tylko „b”?
Joachim Sauer
Co dokładnie ? Co dokładnie robisz / piszesz, co dokładnie się dzieje i jaki dokładnie jest komunikat o błędzie (jeśli taki istnieje)?
Jeśli nie ma to wpływu na inne litery, brzmi to jak problem sprzętowy z klawiaturą i powinien zostać przeniesiony do superużytkownika.
pavium
Po naciśnięciu litery „b” nie wywołuje żadnego efektu i nie wpisuję litery „b”, ale gdy naciskam literę „B” (Shift + b), to w konsoli
+1 Właśnie zainstalowałem wczoraj pytona z homebrew i napotkałem ten problem dziś rano. Zaktualizowałem mój plik startowy Pythona i wszystko znów jest dobrze. Jest to bardzo specyficzny (i bardzo dziwny) efekt uboczny.
Seth
2
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 PYTHONPATHwskazywania na pakiety MacPorts:
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 /optfolderze domowym lub w folderze domowym.
Mam również ten sam problem i nie korzystam z wersji Pythona w wersji MacPorts.
Korzystam z najnowszej wersji vpythonVisual 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.
Pracowałem nad tym trochę więcej ... wygląda na to, że inni mają podobne problemy z innymi interfejsami Pythona. W moim systemie mam plik .pythonrc.py, który jest analizowany podczas uruchamiania Pythona (wskazywany przez PYTHONSTARTUP). W tym pliku załadowano dwa moduły rlcompleter i readline. Następnie wywołuje readline.parse_and_bind („bind -v”). To wywołanie inicjuje moduł readline, kopiując wiązania z powłoki (możesz zobaczyć swoje, wchodząc do powłoki bash i wpisując „bind -v” (bez cudzysłowów)). Jeden z nich musi stworzyć problem. Jeśli skomentuję wiersz (umieść # przed nim), problem zniknie.
ga mercier
1
Możesz edytować swój post, aby to uwzględnić, co może ułatwić czytanie.
Odpowiedzi:
Problematyczna linia w twoim
.pythonstartup
jest podobna do:To
.pythonstartup
będzie to naprawić ...źródło
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:
Nowa linia:
Pełny kod w moim ~ / .pythonrc
źródło
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:(lub inną wersję Pythona) i użyj Pythona Apple.
źródło
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.
źródło