繁体   English   中英

Python AttributeError: 'NoneType' 对象没有属性 'fileno'

[英]Python AttributeError: 'NoneType' object has no attribute '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'

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

这是shutil库中的已知错误:

https://bugs.python.org/issue24920

https://bugs.python.org/issue24966

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

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

您可以改用shutil 的get_terminal_size() 还有一个可用于 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

一个简单的技巧是将你的工作转移到 Python shell,而不是 IDLE(在我的例子中,在 IDLE 上工作是问题所在,但同样的代码在 Python Shell 上运行得很好)

就我而言,我在终端中使用了一个屏幕会话来为 python 启动 spyder IDE。 我不小心终止了屏幕会话,但 spyder 一直在处理这个错误。 在新的屏幕会话中重新启动 spyder 后,错误消失了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM