J'ai un problème avec ma lettre "b" dans le shell Python sous OS X. Je ne peux pas taper "b", mais "B" a bien fonctionné.
Comment puis-je résoudre ce problème?
J'ai un problème avec ma lettre "b" dans le shell Python sous OS X. Je ne peux pas taper "b", mais "B" a bien fonctionné.
Comment puis-je résoudre ce problème?
Réponses:
La ligne problématique dans votre .pythonstartup
est quelque chose comme:
readline.parse_and_bind("bind ^I rl_complete") # darwin libedit
Cela .pythonstartup
va le réparer ...
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")
Tout d'abord, cela ne s'est produit que lorsque j'ai mis à jour python 2.7.1 à 2.7.3. Cela dit, le correctif est en jeu:
ancienne ligne:
if(sys.platform == 'darwin'): #FIX
nouvelle ligne:
if(sys.platform == 'darwin') and 'libedit' in readline.__doc__: #FIX
Le code complet dans mon ~ / .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
J'ai le même problème. Cela se produit lorsque vous utilisez la version MacPorts de Python dans Snow Leopard.
Je ne vois pas ce problème dans Python d'Apple fourni avec Mac OS X. Ainsi, la solution de contournement devrait être de définir le PYTHONPATH
pointage vers les packages MacPorts:
/opt/local/lib/python/site-packages:/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/
(ou une version Python différente) et utilisez le Python d'Apple.
Malheureusement, la solution de contournement n'est pas judicieuse.
Apple suppose que sa version est inchangée lors des mises à niveau et autres fonctions. Au lieu de cela, il est recommandé que si vous souhaitez mettre à niveau python ou le développer, vous installez une version locale, sous /opt
ou dans votre dossier personnel.
J'ai également le même problème et je n'utilise pas la version MacPorts de python.
J'utilise la dernière version de vpython
Visual Python de www.vpython.org sous Mac OX X Lion fonctionnant sur le dernier MacBook Air (génération 3).
J'ai installé vpython en utilisant leur dernier binaire et en suivant leurs instructions. Il est livré avec un programme d'installation donc il suffit de pointer et cliquer. Il s'agit d'une version modifiée de Python 2.7.1. C'est la version 32 bits. (Je crois qu'ils ne l'ont pas porté sur 64 bits). J'ai ensuite installé VPython-Mac-Py2.7-5.71. J'ai suivi ceci par scipy de www.scipy.org et matplotlib de matplotlib.sourceforge.net Toutes ces installations utilisent un programme d'installation.
Lorsque je lance python depuis leur outil de développement, idle, ou la variante vpython, vidle, je n'ai aucun problème. Si j'ouvre un terminal et exécute python à partir d'un shell bash, le shell ne reconnaîtra pas la touche "b" du clavier. Il vous donnera un son de «cloche», au lieu de taper le «caractère b». Cependant, vous pouvez saisir la lettre «B». On dirait que cette clé est mappée à un «caractère» non affiché incorrect, peut-être le caractère «cloche» dans l'ancien code ASCII.
J'ai essayé de changer l'émulation en xterm, vt100, vt102. J'ai également joué avec différents schémas d'encodage comme en utilisant simplement UTF-8. J'ai également appuyé sur différentes combinaisons de touches spéciales comme la commande-b, etc. Rien n'a fonctionné.
Ma seule solution de contournement consiste à écrire des scripts inactifs ou vidle.
J'espère que cela aide à clarifier le problème.