2017-10-05 144 views
1

,因为我尝试打印财务数据:Python的AttributeError的:“NoneType”对象有没有属性“的fileno”

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' 

我不知道如何解决这个问题,因为这段代码似乎与所有正在尝试它的人一起工作。我只是一个初学者,所以任何帮助将非常感激。 谢谢! 问候,特里斯坦

+0

在这种情况下,'sys .__ stdout__'看起来是'None'。不知道为什么... 如果你添加'import sys'到你的头文件?同样的问题? –

回答

0

这是已知的bug在shutil库:

https://bugs.python.org/issue24920

https://bugs.python.org/issue24966

看来,你应该改变你开始你的代码(从GUI或外壳和类似的方式)

+0

工作!谢谢。 –

+0

请接受回答) –

+0

@RomanMindlin你能解释一下你的答案吗?我不明白你的意思是“你应该改变你开始编码的方式(从GUI或从shell和类似)”。 –

0

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

您可以使用shutil的get_terminal_size()代替。另外还有一个用于Python 2的backport

相关问题