Python Interactif Interprète renvoie toujours “syntaxe non Valide” sur Windows
J'ai rencontré une très confus problème. Quel que soit le type I dans l'interpréteur Python renvoie "Syntaxe non Valide". Voir les exemples ci-dessous. J'ai essayé de faire l'idiot avec la page de code de l'invite je lance l'interprète, mais il ne semble pas aider du tout.
En outre, je n'ai pas été en mesure de trouver ce particulier, bug bizarre d'ailleurs en ligne.
Aucune aide n'importe qui pourrait fournir serait joli. J'ai déjà essayé de réinstaller Python, mais je n'ai pas de chance, le problème existe aussi dans les deux 3.13 et 2.7.
En cours d'exécution:
Python version 3.1.3,
Windows XP SP3.
Arriver:
C:\Program Files\Python31>.\python
Python 3.1.3 (r313:86834, Nov 27 2010, 18:30:53) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 2+2
File "<stdin>", line 1
2+2
^
SyntaxError: invalid syntax
>>> x = "Oh, fiddlesticks."
File "<stdin>", line 1
x = "Oh, fiddlesticks."
^
SyntaxError: invalid syntax
- avez-vous essayé de réinstaller python, droit?
- Essayé de réinstaller, ainsi que l'utilisation de 2.7. Aucune chance de toute façon.
- Vous pouvez essayer de télécharger de nouvelles copies de l'installeur de Python(s). Aussi, est-il seulement le Python shell interactif qui est brisée -- c'est à dire êtes-vous en mesure d'exécuter des scripts Python à partir de l'OS en ligne de commande?
- - Je l'obtenir. C'est une question piège. C'est vraiment "deviner ce que les non-impression personnage que je suis en mesure d'entrer avec le caractère de saut de ligne."
- Ouais, mais la seule option raisonnable est \r, et de l'installation de Windows devrait raisonnablement poignée. 🙂
- Regebro: "mais la seule option raisonnable"... Alors il est temps de trot les déraisonnable options, n'est-ce pas?
Vous devez vous connecter pour publier un commentaire.
Il existe un problème connu lors de l'exécution de Python de manière interactive et sans tampon, qui est prévue pour la fixation 3.2 - et peut être reporté sur les anciennes versions, voir http://bugs.python.org/issue11098
Le méchant truc, c'est que l'on peut être à l'aide de barrettes de mémoire I/O sans s'en rendre compte. Dans mon cas (Python 2.5.4 (r254:67916)), j'ai eu il y a quelques temps définir une variable d'environnement tels que Python serait toujours exécuter sans tampon (sous Windows, c'est PYTHONUNBUFFERED=OUI, ou quelle que soit la chaîne non vide substitué pour OUI) puis oublié. Retrait de l'env.var. résolu le problème pour moi.
De sorte qu'il peut être intéressant de vérifier cette variable d'environnement. Ce n'est pas définie par défaut.
Maintenant que l'échantillon a été nettoyé, il apparaît que le problème est avec la fin de ligne.
Ce n'est pas une solution, mais qu'advient-il si vous créez un fichier
t.py
contenant ce code, exécuter, puis tapez du texte?:Si vous tapez quelque chose comme
2+2
puis avec de la chance cela va vous montrer ce que l'interpréteur Python est d'obtenir dans votre exemple, ce qui pourrait donner une indication sur le problème.Vous pouvez aussi essayer ceci à l'invite de commande:
Cela vous permettra de taper une seule ligne et d'afficher les détails de cette ligne.
input
etraw_input
. Vous auriez besoin d'utilisersys.stdin.readline()
.Une fois, comme en 2002, j'ai réussi à créer une version de Python qui ne pouvait pas fonctionner avec Windows ligne de fin. Il donnerait des erreurs de syntaxe comme ça, pointant à la fin de la ligne. Je trouve cela très peu probable que cela soit un problème dans ce cas cependant, surtout depuis que vous êtes à l'aide de l'installation de Windows.
J'ai aussi eu des problèmes similaires, lorsque j'ai été, par inadvertance, à l'aide d'espaces insécables au lieu de juste des espaces, mais je ne vois pas comment cela pourrait se produire à partir de l'invite, et d'ailleurs vous 2+2 n'utilisez pas d'espaces ni de citations qui pourrait également être un problème.
Ce que les codages et les paramètres du clavier que vous utilisez?
C'est un soucis:
Ce n'est jamais une très bonne idée de lancer le logiciel avec le répertoire en cours définie à l'installation du logiciel d'annuaire. Vous courez le risque de créer des fichiers qui peuvent interférer avec le fonctionnement du logiciel. Lorsque vous commencez à recevoir des bugs et des comportements bizarres, les conséquente raclée sur peut obtenir la situation complètement hors de contrôle.
C'est mieux:
C:\somewhere_else_with_no_spaces>"c:\program files\python31\python"
Le mieux est de le garder hors de "program files". Sauf si je suis misremembering, le dossier d'installation serait
C:\Python31
qui est bon parce que vous n'avez pas besoin de guillemets, comme vous le faites chaque fois que vous utilisez "program files". Il n'y a à ma connaissance aucune bonne raison pour avoir le logiciel dans le dossier "programmes".Certains diagnostics:
A. ouvrez une fenêtre d'Invite de Commande.
B. tapez ceci:
dir "c:\program files\python31"
C. copier/coller le résultat de l'étape B dans une édition de votre question, c'est à dire à ne pas le placer dans un commentaire.
Il serait utile si vous avez répondu (dans une édition de votre question) la question que quelqu'un a demandé à propos de macros de clavier ... également envisager la possibilité de sur-puce claviers, et d'avoir plusieurs éditeurs de méthode d'entrée et non pas à l'aide de la "corriger" un. Aussi, est ce comportement qui se passe avec n'importe quel logiciel autre que Python?
Je suis face au même problème, même si il ne pourrait pas la même chose que vous, mais il y a un moyen alternatif de diagnostic, vous devez toujours définir un fichier d'historique.
J'ai trouver la raison par
vim
le fichier de l'historique (ou vous pourriez envisager dehexdump -C
en casvim
ne montre les personnages cachés):Selon http://www.w3.org/International/questions/qa-bidi-controls :
La raison en est parce que j'ai copier/coller direct de code en ligne(je sais que c'est dangereux en matière de sécurité tout de même) qui contient caché RLM et LRM caractères.