UserWarning:已导入模块matplotlib

时间:2012-03-09 13:43:47

标签: python matplotlib

运行脚本时,我收到以下警告:

/usr/lib/pymodules/python2.6/mpl_toolkits/__init__.py:2: UserWarning: Module matplotlib was already imported from /usr/local/lib/python2.6/dist-packages/matplotlib/__init__.pyc, but /usr/lib/pymodules/python2.6 is being added to sys.path
  __import__('pkg_resources').declare_namespace(__name__)

以下是脚本的导入部分:

from __future__ import division
import csv
from datetime import datetime, timedelta
from random import random
import numpy as np
from matplotlib.figure import Figure
from matplotlib.backends.backend_agg import FigureCanvasAgg as Canvas
from matplotlib.finance import candlestick, plot_day_summary
from matplotlib.ticker import FuncFormatter
from matplotlib.patches import Circle, Rectangle
from matplotlib.lines import Line2D
from mpl_toolkits.axes_grid import make_axes_locatable
from mpl_toolkits.axes_grid.axes_size import AxesY
from matplotlib.font_manager import FontProperties
from mpl_toolkits.axes_grid.parasite_axes import SubplotHost
from matplotlib import rcParams

导致警告的原因是什么?

1 个答案:

答案 0 :(得分:9)

“问题”在于您安装matplotlib - 或者更确切地说,是您安装的两个 - 而不是您尝试运行的程序。

从消息中,我可以推断出你在/ usr / local中安装了一个版本的matplotlib - 也许你自己安装的新版本没有使用OS包管理? - OS标准位置的另一个版本/usr/lib/pymodules/python2.6。

警告消息告诉您Python 注意到操作系统打包版本,但它会忽略它(即,不加载任何模块),因为它已经 在/ usr / local中找到了这个版本,并且从两个不同的目录中获取模块是没有意义的。

如果您打算使用两个版本并且打算在/ usr / local中使用该版本,那么警告对您来说基本上无害。

如果您没有意识到安装了两个版本的matplotlib,您可能想尝试稍微清理一下这种情况。