2015-04-02 2 views
0

Я работаю над проектом, который использует пакет wbdata для python, который является оберткой для мирового банка api. Он работал нормально до тех пор, пока я не сделал то, что, как я догадался, был большим, чем запрос данных, который мне пришлось отменить, и теперь пакет не будет загружаться, когда я буду использовать функцию импорта wbdata. Вот что я получаюОшибка EOF при импорте пакета python

Python 2.7.7 |Anaconda 2.0.1 (64-bit)| (default, Jun 11 2014, 10:40:02) [MSC 

v.1500 64 bit (AMD64)] 
Type "copyright", "credits" or "license" for more information. 

IPython 2.1.0 -- An enhanced Interactive Python. 
Anaconda is brought to you by Continuum Analytics. 
Please check out: http://continuum.io/thanks and https://binstar.org 
?   -> Introduction and overview of IPython's features. 
%quickref -> Quick reference. 
help  -> Python's own help system. 
object? -> Details about 'object', use 'object??' for extra details. 
%guiref -> A brief reference about the graphical user interface. 

In [1]: import wbdata as wb 

Traceback (most recent call last): 

    File "<ipython-input-1-ae1872a5f07c>", line 1, in <module> 
    import wbdata as wb 

    File "C:\Users\Josh New\Anaconda\lib\site-packages\wbdata\__init__.py", line 23, in <module> 
    from .api import (get_country, get_data, get_dataframe, get_panel, 

    File "C:\Users\Josh New\Anaconda\lib\site-packages\wbdata\api.py", line 31, in <module> 
    from . import fetcher 

    File "C:\Users\Josh New\Anaconda\lib\site-packages\wbdata\fetcher.py", line 104, in <module> 
    if not len(CACHE.cache)== 0: 

    File "C:\Users\Josh New\Anaconda\lib\site-packages\wbdata\fetcher.py", line 82, in cache 
    cache = pickle.load(cachefile) 

EOFError 


In [2]: 

Может кто-нибудь, пожалуйста, помогите мне с повторным запуском этого пакета?

Благодаря

Джош

Edit- Ok после запуска% отладки cachefile.name я получаю следующее;

%debug cachefile.name 
NOTE: Enter 'c' at the ipdb> prompt to continue execution. 
> c:\users\josh new\anaconda\lib\encodings\cp1252.py(15)decode() 
    14  def decode(self,input,errors='strict'): 
---> 15   return codecs.charmap_decode(input,errors,decoding_table) 
    16 


ipdb> c 
Traceback (most recent call last): 
    File "C:\Users\Josh New\Anaconda\lib\site-packages\IPython\core\magics\execution.py", line 817, in _run_with_debugger 
    deb.run(code, code_ns) 
    File "C:\Users\Josh New\Anaconda\lib\bdb.py", line 400, in run 
    exec cmd in globals, locals 
    File "<string>", line 1, in <module> 
NameError: name 'cachefile' is not defined 

ответ

1

Использование IPython Волшебное %debug и проверить, что имя файла cachefile «s это. Если это обычный файл, имя должно быть доступно как cachefile.name.

Тогда nuke этот файл.

+0

% отлаживать > C: \ Users \ разыгрывать новый \ анаконда \ Lib \ сайт-пакеты \ wbdata \ fetcher.py (84) кэш() 83 кроме IOError: ---> 84 кэш = {} 85 self .__ cache = cache – Josh

+0

Ну, хорошая точка, 'cachefile' - это файловый объект, вам нужно найти имя файла, таким образом,' cachefile.name', если оно было создано с помощью 'open()/file()' или иначе вам нужно для чтения исходного кода. –

+0

Я предполагаю, что у вас есть удаление? – Josh

0

Я думаю, что исправил его, перейдя в папку wbdata в Appdata \ Local \ wbdata и удалив файл кеша, который был в нем. похоже, работает сейчас.