我只是在学Python。你知道吗
我有一个包含以下内容的文件
import datetime as dt
import matplotlib.pyplot as plt
from matplotlib import style
import pandas as pd
import pandas_datareader.data as web
如果我将此文件命名为csv2.py
并调用:
python csv2.py
。。。它工作正常。但是如果我将这个文件命名为csv.py
并运行:
python csv.py
它会触发此异常:
C:\Git\algotrading [master ≡ +3 ~0 -0 !]> python csv.py
Traceback (most recent call last):
File "csv.py", line 2, in <module>
import matplotlib.pyplot as plt
File "C:\Users\andrerpena\AppData\Local\Programs\Python\Python35-32\lib\site-packages\matplotlib\pyplot.py", line 29, in <module>
import matplotlib.colorbar
File "C:\Users\andrerpena\AppData\Local\Programs\Python\Python35-32\lib\site-packages\matplotlib\colorbar.py", line 34, in <module>
import matplotlib.collections as collections
File "C:\Users\andrerpena\AppData\Local\Programs\Python\Python35-32\lib\site-packages\matplotlib\collections.py", line 36, in <module>
import matplotlib.mlab as mlab
File "C:\Users\andrerpena\AppData\Local\Programs\Python\Python35-32\lib\site-packages\matplotlib\mlab.py", line 172, in <module>
import csv
File "C:\Git\algotrading\csv.py", line 2, in <module>
import matplotlib.pyplot as plt
AttributeError: module 'matplotlib' has no attribute 'pyplot'
我花了大约40分钟才弄明白这个问题。我是说。。找出与文件名有关的问题。你知道吗
为什么会这样?你知道吗
就像伊戈尔茨维特和丹尼尔·多巴利安所说的:
如果创建名为:csv.py文件内容:
并运行:
您将看到此文件导入自身:
此外,如果对其他模块执行相同的操作,您将发现相同的结果:
结果:
最后,如果使用名为matplotlib.py文件,您将得到相同的结果:
csv.py
内置于python中,因此受到限制。你知道吗如果您运行python解释器并尝试
import csv
,则无需下载任何新内容即可成功。你知道吗看起来像matplotlib.pyplot文件通过各种进口需求mlab.py公司它称为“导入csv”。这应该会找到一个名为csv的文件(不是您的),但因为您已将文件重命名为csv.py文件相反,它正试图导入它,覆盖所需的导入,并将导入操作弄乱matplotlib.pyplot文件. 你知道吗
相关问题 更多 >
编程相关推荐