因为我正在尝试打印财务数据:
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'
我不知道如何解决这个问题,因为这段代码似乎与正在尝试它的其他人一起工作 . 我只是一个初学者,所以任何帮助都会非常感激 . 谢谢!问候,特里斯坦
3 回答
它是
shutil
库中的已知错误:https://bugs.python.org/issue24920
https://bugs.python.org/issue24966
看来,你应该改变你开始编码的方式(从GUI或shell和类似的)
这不是一个完整的解决方案,但至少是一种解决方法 .
您可以使用shutil的get_terminal_size()代替 . 还有一个backport可用于python 2 .
我在下面的代码中遇到了同样的问题:
一个简单的黑客就是将你的工作转移到Python shell而不是IDLE(在我的例子中,处理IDLE是问题所在,但是同样的代码在Python Shell上完美运行)