outside - nameerror name get_ipython is not defined
% matplotlib line magic causa SyntaxError en el script de Python (6)
Debido a que las líneas mágicas solo son compatibles con la línea de comandos IPython que no es Python cl, use: ''exec(%matplotlib inline)''
lugar de %matplotlib inline
Intento ejecutar los siguientes códigos en 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
Pero tengo este error:
line 10
%matplotlib inline
^
SyntaxError: invalid syntax.
Aprecio si alguien me da una explicación.
PD: el código es del proyecto de la competencia Kaggle: Digit Recognizer
En lugar de% matplotlib en línea, no es una secuencia de comandos de Python, por lo que podemos escribir así. Funcionará desde IPython import get_ipython get_ipython (). Run_line_magic (''matplotlib'', ''inline'')
Hay varias razones por las que esto no funcionaría.
Es posible que matplotlib no esté correctamente instalado. has intentado correr:
conda install matplotlib
Si eso no funciona, mire su variable de entorno% PATH%, ¿contiene sus bibliotecas y rutas de acceso de python?
La sintaxis ''%'' en %matplotlib inline
es reconocida por iPython (donde está configurada para manejar los métodos mágicos), pero no por Python, que proporciona un SyntaxError. Aquí se da una solución.
Las magias de línea solo son compatibles con la línea de comando de IPython. No se pueden usar simplemente dentro de un script, porque %something
no es la sintaxis de Python correcta.
Si desea hacer esto desde un script, debe obtener acceso a la API de IPython y luego llamar a la función run_line_magic
.
En lugar de %matplotlib inline
, tendrá que hacer algo como esto en su script:
from IPython import get_ipython
get_ipython().run_line_magic(''matplotlib'', ''inline'')
Un enfoque similar se describe en esta respuesta , pero utiliza la función magic
desuso.
Tenga en cuenta que el script todavía debe ejecutarse en IPython. Bajo vainilla Python, la función get_ipython
devuelve None
y get_ipython().run_line_magic
generará un AttributeError
.
Si incluye el siguiente código en la parte superior de su script, matplotlib
se ejecutará en línea cuando se encuentre en un entorno IPython
(como jupyter, complemento de átomo de hidrógeno ...), y seguirá funcionando si matplotlib
el script directamente a través de la línea de comandos ( matplotlib
no se ejecutará en línea, y los gráficos se abrirán en una ventana emergente como de costumbre).
from IPython import get_ipython
ipy = get_ipython()
if ipy is not None:
ipy.run_line_magic(''matplotlib'', ''inline'')