Python AttributeError:';非类型';对象没有属性';文件编号';

Python AttributeError:';非类型';对象没有属性';文件编号';,python,python-3.x,pandas,attributeerror,datareader,Python,Python 3.x,Pandas,Attributeerror,Datareader,当我试图打印财务数据时: import datetime as dt import matplotlib.pyplot as plt from matplotlib import style import pandas as pd import pandas_datareader.data as web import numpy as np style.use('ggplot') start=dt.datetime(2000,1,1) end=dt.datetime(2016,12,31) df

当我试图打印财务数据时:

import datetime as dt
import matplotlib.pyplot as plt
from matplotlib import style
import pandas as pd
import pandas_datareader.data as web
import numpy as np
style.use('ggplot')
start=dt.datetime(2000,1,1)
end=dt.datetime(2016,12,31)
df= web.DataReader('ERIE', 'google', start, end)
print(df.head())
我得到的错误是df不存在,或者更具体地说:

Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
print(df.head(5))
File "C:\Python34\lib\site-packages\pandas\core\base.py", line 51, in __str__
return self.__unicode__()
File "C:\Python34\lib\site-packages\pandas\core\frame.py", line 582, in __unicode__
width, _ = console.get_console_size()
File "C:\Python34\lib\site-packages\pandas\io\formats\console.py", line 77, in get_console_size
terminal_width, terminal_height = get_terminal_size()
File "C:\Python34\lib\site-packages\pandas\io\formats\terminal.py", line 33, in get_terminal_size
return shutil.get_terminal_size()
File "C:\Python34\lib\shutil.py", line 1071, in get_terminal_size
size = os.get_terminal_size(sys.__stdout__.fileno())
AttributeError: 'NoneType' object has no attribute 'fileno'
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
打印(测向头(5))
文件“C:\Python34\lib\site packages\pandas\core\base.py”,第51行,在__
返回self.\uuuuUnicode\uuuuuu()
文件“C:\Python34\lib\site packages\pandas\core\frame.py”,第582行,采用unicode编码__
宽度,u=console.get_console_size()
文件“C:\Python34\lib\site packages\pandas\io\formats\console.py”,第77行,大小为get\u console\u
端子宽度、端子高度=获取端子尺寸()
文件“C:\Python34\lib\site packages\pandas\io\formats\terminal.py”,第33行,大小为get\u terminal\u
返回shutil.get_terminal_size()
文件“C:\Python34\lib\shutil.py”,第1071行,大小为get\U terminal\U
size=os.get\u terminal\u size(sys.\uu stdout\uuuu.fileno())
AttributeError:“非类型”对象没有属性“fileno”
我不知道如何解决这个问题,因为这段代码似乎与其他尝试它的人一起工作。我只是一个初学者,所以任何帮助都将不胜感激。 非常感谢。
你好,特里斯坦

这是
shutil
库中已知的错误:


看起来,您应该改变开始编写代码的方式(从GUI或shell以及类似的方式)

这不是一个完整的解决方案,但至少是一种变通方法


你可以用shutil's代替。python 2还有一个可用的解决方案。

我在下面的代码中遇到了同样的问题:

import pandas as pd
dict = {
"country" :["Brazil", "Russia", "India", "China", "South Africa"],
"capital" :["Brasilia", "Moscow", "New Delhi", "Beijing", "Pretoria"],
"area" : [8.516, 17.10, 3.286, 9.597, 1.221],
"population" : [200.4, 143.5, 1252, 1357, 52.98] }

brics = pd.DataFrame(dict)

brics

一个简单的方法是将您的工作转移到pythonshell,而不是IDLE(在我的例子中,在IDLE上工作是个问题,但同样的代码在pythonshell上运行得非常好)

在我的例子中,我使用了终端中的屏幕会话来启动Python的spyder IDE。我意外地终止了屏幕会话,但spyder仍在处理此错误。在新的屏幕会话中重新启动spyder后,错误消失。

看起来像是
sys.\uu stdout\uuuu
在本例中是
None
。不知道为什么。。。如果将
import sys
添加到页眉中会怎么样?同样的问题?成功了!谢谢。@RomanMindlin你能解释一下你的答案吗?我不明白你所说的“你应该改变你开始代码的方式(从GUI或shell或类似的方式)”。@b你应该尝试改变代码的环境,从shell执行,而不是从空闲状态执行。另外,尝试更新python版本,这个问题在3中得到了修复。5@RomanMindlin我还注意到从shell执行解决了这个问题。我使用的是3.5版。这个问题可以通过定义sys.\u stdout\u变量来解决