Je souhaite copier du code Python / des fonctions entières et des classes déjà en retrait dans IPython. Chaque fois que j'essaye, l'indentation est foutue et j'obtiens le message d'erreur suivant:
IndentationError: unindent does not match any outer indentation level (<ipython-input-23-354f8c8be51b>, line 12)
If you want to paste code into IPython, try the %paste and %cpaste magic functions.
Réponses:
Vous ne pouvez pas copier directement sur IPython. Voici les étapes:
%paste
dans IPythonla source
%autoindent
.Ipython 5
vous pouvez simplement coller le code. Plus besoin%paste
. Lisez cette réponse .paste
.Une clarification sur les étapes:
Tout d'abord, copiez les lignes cibles dans votre presse-papiers.
Tapez dans l'invite iPython:
%paste
%cpaste
Collez (Ctrl-V) et appuyez sur Entrée.
Puis tapez
--
et appuyez sur Entrée.Par exemple:
la source
Depuis Ipython 5, vous n'avez besoin d'aucune commande magique, collez-la simplement
Plus à ce sujet ici
Pour mettre
ipython
à niveau vers la dernière versionla source
>
signes comme celui-ci:>>> a = 1 + 2
%paste
exigeTkinter
. Si vous êtes dans ubuntu, vous pouvez l'installer enSi vous êtes sur Python3
Ensuite, redémarrez ipython et utilisez
%paste
pour coller à partir de votre presse-papiers.la source
L'une des réponses utiles a été perdue dans les commentaires, je voulais donc la reformuler en ajoutant une référence pour une autre fonction magique IPython utile.
Tout d'abord, pour reformuler ce que @EOL a dit, une façon de résoudre le problème d'OP est de désactiver l'indentation automatique en exécutant d'abord
%autoindent
et en faisant le collage (pas nécessaire si vous utilisez%paste
, bien sûr).Maintenant, pour ajouter plus d'informations à ce qui est déjà là, un autre mode utile dans IPython est
%doctest_mode
qui vous permet de copier des exemples de collage et de tester des extraits de chaînes doc. Ceci est également utile pour exécuter la sortie de session Python interactive que vous pourriez trouver dans la documentation et les forums en ligne, sans avoir à supprimer d'abord les chaînes d'invite.la source
Pour les utilisateurs ubuntu qui utilisent Python 3.
Le
python-tk
est pour Python 2.Pour
%paste
travailler sur Python 3, installez lepython3-tk
package:la source