use*_*780 6 python matplotlib anaconda
我安装了Anaconda和MacPorts来安装各种python包,并在尝试导入matplotlib时收到以下错误:
bash-3.2$ python
Python 2.7.8 |Anaconda 2.1.0 (x86_64)| (default, Aug 21 2014, 15:21:46)
[GCC 4.2.1 (Apple Inc. build 5577)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://binstar.org
>>> import conda
>>> import matplotlib
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/colinross/anaconda/lib/python2.7/site-packages/matplotlib-1.4.3-py2.7-macosx-10.5-x86_64.egg/matplotlib/__init__.py", line 169, in <module>
from urllib2 import urlopen
File "/Users/colinross/anaconda/lib/python2.7/urllib2.py", line 104, in <module>
import bisect
File "bisect.py", line 2, in <module>
import matplotlib.pyplot as plt
File "/Users/colinross/anaconda/lib/python2.7/site-packages/matplotlib-1.4.3-py2.7-macosx-10.5-x86_64.egg/matplotlib/pyplot.py", line 27, in <module>
import matplotlib.colorbar
File "/Users/colinross/anaconda/lib/python2.7/site-packages/matplotlib-1.4.3-py2.7-macosx-10.5-x86_64.egg/matplotlib/colorbar.py", line 32, in <module>
import matplotlib.artist as martist
File "/Users/colinross/anaconda/lib/python2.7/site-packages/matplotlib-1.4.3-py2.7-macosx-10.5-x86_64.egg/matplotlib/artist.py", line 11, in <module>
from matplotlib import docstring, rcParams
ImportError: cannot import name rcParams
Run Code Online (Sandbox Code Playgroud)
有谁知道如何解决这一问题?
问题是由bisect.py当前目录中的文件引起的,该文件将bisect模块从标准库中隐藏:当您导入matplotlib时,matplotlib会导入urllib2库,而库会依次尝试导入标准库 bisect模块.不幸的是,由于Python的导入名称解析的工作方式,urllib2最终导入本地 bisect.py而不是标准库.
请注意,此时(bisect.py开始导入的点)我们仍然只是matplotlib导入的一半,因为matplotlib导入在导入完成之前无法完成,直到导入完成后才能完成导入urllib2.bisect.py导入完成.这意味着只定义了matplotlib导入定义的一些对象.
现在你的bisect.py脚本显然试图从matplotlib进行更多的导入,并且因为matplotlib命名空间尚未完全填充,你以一个结尾ImportError.
可能的解决方案:(1)将bisect.py脚本重命名为其他内容; (2)从不同的目录(不包含bisect.py脚本的目录)启动Python解释器.
通常,建议避免提供与标准库中的内容匹配的自己的模块或顶级包名称.而不是必须具有标准库中的内容的百科全书知识,最简单的方法是避免过于通用的名称. numbers.py,math.py并且random.py可能是最常见的罪犯.
要在将来诊断此类错误,请注意以下行:
File "bisect.py", line 2, in <module>
Run Code Online (Sandbox Code Playgroud)
在追溯中:所有其他行显示一个模块/Users/colinross/anaconda/lib/python2.7,因此来自标准库或来自第三方软件包(如matplotlib)的安装/Users/colinross/anaconda/lib/python2.7/site-packages; 缺少路径显示bisect.py从当前目录导入.
| 归档时间: |
|
| 查看次数: |
4638 次 |
| 最近记录: |