%matplotlib线魔术在Python脚本中造成SyntaxError

2024-05-03 03:18:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在Spyder(Python2.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

但我犯了个错误:

line 10
    %matplotlib inline
    ^
SyntaxError: invalid syntax.

如果有人给我解释我会很感激的。

备注:代码来自Kaggle竞赛项目:数字识别器


Tags: to代码importnumpysizematplotlibonas
3条回答

%matplotlib inline中的语法“%”由iPython(在这里设置它来处理魔术方法)识别,而不是Python本身,后者会产生SyntaxError。 Here is given one solution.

因为行magics只由IPython命令行支持,而不是由Python cl支持,所以请使用:'exec(%matplotlib inline)',而不是%matplotlib inline

只有IPython命令行支持行magics。它们不能简单地在脚本中使用,因为%something不是正确的Python语法。

如果要从脚本执行此操作,必须访问IPython API,然后调用run_line_magic函数。

您将不得不在脚本中执行以下操作,而不是%matplotlib inline

from IPython import get_ipython
get_ipython().run_line_magic('matplotlib', 'inline')

this answer中描述了类似的方法,但它使用了不推荐的magic函数。

注意,脚本仍然需要在IPython中运行。在vanilla Python下,get_ipython函数返回None,并且get_ipython().run_line_magic将引发AttributeError

相关问题 更多 >