我是编程新手,我对以下错误有疑问。 我正在使用python 2.7。,并且我有以下脚本来创建一个简单的图形(示例来自Eric Matthes的python CrashCourse):
import matplotlib.pyplot as plt
squares = [1,4,9,16,25]
plt.plot(squares, linewitdth = 5)
#Set chart title and lable axes.
plt.title("Square Numbers", fontsize = 24)
plt.xlabel("Value", fontsize = 14)
plt.ylabel("Square of Value", fontsize = 14)
# Set size of tick labels
plt.tick_params(axis = "both", labelsize = 14)
plt.show()
当我在WindowsPowerShell中运行此脚本时,出现以下错误:
Traceback (most recent call last): File "mpl_squares.py", line 1, in <module>
import matplotlib.pyplot as plt
File "C:\Users\Roger\Anaconda2\lib\sitepackages\matplotlib\__init__.py, line 134, in <module> from ._version import get_versions
File "C:\Users\Roger\Anaconda2\lib\site-packages\matplotlib\_version.py", line 7, in <module> import json
File "C:\Users\Roger\Desktop\lpthw\json.py", line 7, in <module>
AttributeError: "module" object has no attribute "dump"
在其他脚本中,我在导入此模块时遇到了同样的问题,然后我找到了 通过“import simplejson”替换“import json”行的解决方案,并且运行良好。
这是我当时发现的解决方案:
json是simplejson,添加到stdlib中。但是由于json是在2.6中添加的,所以simplejson具有处理更多Python版本(2.4 +)的优势。
simplejson也比Python更频繁地更新,所以如果你需要(或想要)最新版本,如果可能的话,最好使用simplejson本身。
在我看来,一个好的做法是使用其中一个作为后备。
尝试:将simplejson导入为json 除了ImportError:import json
现在我查看错误,我得到的模块是“_version.py” 这是此文件中包含的信息:
# This file was generated by 'versioneer.py' (0.15) from
# revision-control system data, or from the parent directory name of an
# unpacked source archive. Distribution tarballs contain a pre-generated
#copy
# of this file.
import json
import sys
version_json = '''
{
"dirty": false,
"error": null,
"full-revisionid": "26382a72ea234ee0efd40543c8ae4a30cffc4f0d",
"version": "1.5.3"
}
''' # END VERSION_JSON
def get_versions():
return json.loads(version_json)
问题: 您是否认为我必须通过替换修复_version.py模块中的内容 import json for import simplejson和在模块中添加的函数?
我正在考虑解决问题的方法,但是如果它让事情变得更糟,我不想修改_version.py中的任何内容。非常感谢您的意见和建议。
最好的问候
答案 0 :(得分:1)
似乎导入了C:\Users\Roger\Desktop\lpthw\json.py
而不是Python的内置json
模块。
您是否以某种方式将该文件夹(C:\Users\Roger\Desktop\lpthw
)添加到PYTHONPATH
,例如使用sys.path.append()
或PYTHONPATH
变量?详细了解how Python finds modules。
simplejson
修复的原因是它没有被其他同名模块覆盖。
尝试将C:\Users\Roger\Desktop\lpthw\json.py
重命名为C:\Users\Roger\Desktop\lpthw\myjson.py
,并尝试弄清楚lpthw
文件夹如何将其转换为PYTHONPATH
。