2012-03-09 33 views
2

我收到以下警告時運行的腳本:UserWarning:模塊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 

是什麼原因造成的警告?

+0

運行你的代碼時,我得到一個類似的錯誤,只是它抱怨模塊'readline'已經被導入。引起麻煩的行是'from mpl_toolkits.axes_grid import make_axes_locatable' – 2012-03-09 15:08:22

回答

9

「問題」在於您安裝了matplotlib - 或者說,您的兩次安裝 - 而不是您嘗試運行的程序。

從這個消息中,我可以推斷出你在/ usr/local中安裝了一個matplotlib版本 - 也許是你自己安裝的新版本,而不使用OS軟件包管理? - 以及OS標準位置中的另一個版本/usr/lib/pymodules/python2.6。

警告消息會告訴你,Python的注意到操作系統打包版本,但它會忽略它(即不加載從任何模塊),因爲它已經找到的版本在/ usr /本地和它不能從兩個不同的目錄中獲取模塊。

如果您打算擁有兩個版本,並且您打算在/ usr/local中使用該版本,那麼警告對您基本上是無害的。

如果你沒有意識到你已經安裝了兩個版本的matplotlib,你可能想嘗試清理一下這種情況。