为什么Python程序会根据文件名引发异常?

2024-09-28 01:30:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是在学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分钟才弄明白这个问题。我是说。。找出与文件名有关的问题。你知道吗

为什么会这样?你知道吗


Tags: csvinpyimportmatplotliblocalasline
3条回答

就像伊戈尔茨维特和丹尼尔·多巴利安所说的:

如果创建名为:csv.py文件内容:

import csv
print(csv)

并运行:

python csv.py

您将看到此文件导入自身:

 <module 'csv' from '/home/your/folder/csv.py'>

此外,如果对其他模块执行相同的操作,您将发现相同的结果:

import subprocess

print(subprocess)

结果:

<module 'subprocess' from '/home/your/folder/subprocess.py'>

最后,如果使用名为matplotlib.py文件,您将得到相同的结果:

import matplotlib
print(matplotlib)
# <module 'matplotlib' from '/home/your/folder/matplotlib.py'>

csv.py内置于python中,因此受到限制。你知道吗

如果您运行python解释器并尝试import csv,则无需下载任何新内容即可成功。你知道吗

看起来像matplotlib.pyplot文件通过各种进口需求mlab.py公司它称为“导入csv”。这应该会找到一个名为csv的文件(不是您的),但因为您已将文件重命名为csv.py文件相反,它正试图导入它,覆盖所需的导入,并将导入操作弄乱matplotlib.pyplot文件. 你知道吗

相关问题 更多 >

    热门问题