2017-10-05 4 views
1

que je suis en train d'imprimer des données financières:Python AttributeError: objet « NoneType » n'a pas d'attribut « 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()) 

Je reçois l'erreur df n'existe pas, ou plus précisément:

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' 

Je n'ai aucune idée de comment résoudre ce problème, car ce code semble fonctionner avec tous les autres qui l'essayent. Je suis juste un débutant, donc toute aide serait vraiment appréciée. Merci! Salutations, Tristan

+0

On dirait que 'sys .__ stdout__' est' None' dans ce cas. Vous ne savez pas pourquoi ... Et si vous ajoutez 'import sys' à votre en-tête? Même problème? –

Répondre

0

Il est connu bogue dans shutil bibliothèque:

https://bugs.python.org/issue24920

https://bugs.python.org/issue24966

Il semble, vous devez changer la façon dont vous avez commencé votre code (à partir de l'interface graphique ou shell et similaire

+0

A travaillé! Je vous remercie. –

+0

S'il vous plaît, acceptez la réponse) –

+0

@RomanMindlin Pouvez-vous expliquer plus sur votre réponse? Je ne comprends pas ce que vous entendez par "vous devriez changer la façon dont vous avez commencé le code (de GUI ou de shell et similaire)". –

0

Ce n'est pas une solution complète, mais au moins une solution de contournement. Vous pouvez utiliser get_terminal_size() de shutil à la place. Il y a aussi un backport disponible pour python 2.