%matplotlib ligne magic causes SyntaxError dans le script Python
J'essaie d'exécuter les codes suivants Spyder (Python 2.7.11):
# -*- coding: utf-8 -*-
import numpy as np
import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import tensorflow as tf
# settings
LEARNING_RATE = 1e-4
# set to 20000 on local environment to get 0.99 accuracy
TRAINING_ITERATIONS = 2000
DROPOUT = 0.5
BATCH_SIZE = 50
# set to 0 to train on all available data
VALIDATION_SIZE = 2000
# image number to output
IMAGE_TO_DISPLAY = 10
Mais j'ai eu cette erreur:
line 10
%matplotlib inline
^
SyntaxError: invalid syntax.
J'apprécie si quelqu'un me donne une explication.
P. S. du code de Kaggle projet de concurrence: Chiffres de Reconnaissance
- Avez-vous eu d'autres scientifiques distributions installé? github.com/ContinuumIO/anaconda-issues/issues/264
- Je suis à l'aide de l'Anaconda Python 2.7.11, installé pandas, nump, scipy, matplotlib, scikit-learn de 0,17. ....
- aussi théano 0.8.0.dev0
Vous devez vous connecter pour publier un commentaire.
Ligne magies ne sont pris en charge par le IPython ligne de commande. Ils ne peuvent tout simplement pas être utilisé à l'intérieur d'un script, car
%something
n'est pas de corriger la syntaxe de Python.Si vous voulez le faire à partir d'un script, vous devez obtenir l'accès à la IPython API et ensuite appeler la
run_line_magic
fonction.Au lieu de
%matplotlib inline
, vous aurez à faire quelque chose comme ceci dans votre script:Une approche similaire est décrite dans cette réponse, mais il utilise le obsolète
magic
fonction.Notez que le script doit encore exécuter dans IPython. En vertu de la vanille Python
get_ipython
fonction renvoieNone
etget_ipython().run_line_magic
déclenche uneAttributeError
.AttributeError: 'NoneType' object has no attribute 'run_line_magic'
, Peut vous aider Merciget_ipython()
retourneNone
. Ligne de magies ne sont pris en charge dans IPython.%
ne sont pas corriger la syntaxe de Python, mais en utilisant les fonctionsrun_line_magic
oumagic
sont syntaxiquement correctes Python "pure". Cependant, la ligne de magie fonction est uniquement prise en charge par l'interpréteur IPython et non pas par l'interpréteur Python.Parce que la ligne de magies ne sont pris en charge par le IPython ligne de commande pas par Python cl, utilisez:
'exec(%matplotlib inline)'
au lieu de%matplotlib inline
La syntaxe '%' dans
%matplotlib inline
est reconnu par iPython (où il est mis en place pour gérer les méthodes magiques), mais pas Python lui-même, ce qui donne une SyntaxError.Ici est donné une solution.
Si vous incluez le code suivant en haut de votre script,
matplotlib
sera exécuté en ligne lorsque dans unIPython
de l'environnement (comme jupyter, atome d'hydrogène, plugin...), et il faudra encore travailler si vous lancer le script directement via la ligne de commande (matplotlib
de ne pas en marche en ligne, et les courbes vont s'ouvrir dans une fenêtre pop-ups comme d'habitude).Il y a plusieurs raisons pourquoi cela ne marcherait pas.
Il est possible que matplotlib est pas installé correctement.
avez-vous essayé de lancer:
Si cela ne fonctionne pas, regardez votre %PATH% variable d'environnement, ne contient pas de vos bibliothèques python et chemins?
Problème similaire sur github anaconda
L'analogue de IPython de l' %matplotlib dans Julia est d'utiliser le PyPlot paquet, ce qui donne une Julia interface de Matplotlib en ligne parcelles dans IJulia carnets de notes. (L'équivalent de numpy est déjà chargé par défaut dans Julia.)
Compte tenu de PyPlot, l'analogue de l' %matplotlib inline est à l'aide de PyPlot, depuis PyPlot par défaut inline parcelles dans IJulia.
Au lieu de %matplotlib en ligne,il n'est pas un script python, donc on peut écrire comme cela, il va travailler
de IPython importation get_ipython
get_ipython().run_line_magic('matplotlib', 'inline')
Preferences > IPython console > Graphics
pour elle.