2014-09-16 1 views
0

Я пытаюсь прочитать несколько созданных Пандами файлов HDF5 в простом веб-приложении с использованием Bottle. При этом я получаю уведомление об отказе при чтении HDFStore, созданного за пределами сервера приложений Bottle.Pandas читает HDFStore в бутылке - DeprecationWarning?

Окружающая среда:

  • OSX: 10.9.4
  • Python: 2.7.8 (самодельный)
  • панды: 0.14.1
  • бутылки: 0.12.7
  • таблицы: 3,1 .1

Настоящий рабочий стол, который иллюстрирует проблему:

test-pandas.py

import pandas as pd 
import numpy as np 

df1 = pd.DataFrame(np.random.randn(20, 5),columns=['a', 'b', 'c', 'd', 'e']) 
df1.to_hdf('/tmp/df.hdf',key='dfkey',format='table',append=False,complib='blosc',complevel=9) 

Затем в другом файле, мы имеем:

test-bottle.py

import pandas as pd 
import bottle as bt 

app = bt.Bottle() 
@app.route('/test') 
def test(): 
    bt.response.set_header("Content-Type","application/json") 
    df2 = pd.read_hdf('/tmp/df.hdf','dfkey') 
    return df2.to_json(orient='split') 

app.run(host='localhost', port=8080, debug=True) 

Запуск сервера через python test-bottle.py и затем укажите браузер на http://localhost:8080/test. Бутылка выкладывает следующий отладочный данные:

Bottle v0.12.7 server starting up (using WSGIRefServer())... 
Listening on http://localhost:8080/ 
Hit Ctrl-C to quit. 

/usr/local/lib/python2.7/site-packages/pandas/io/pytables.py:533: DeprecationWarning: openFile() is pending deprecation, use open_file() instead. You may use the pt2to3 tool to update your source code. 
    self._handle = tables.openFile(self._path, self._mode, **kwargs) 
/usr/local/lib/python2.7/site-packages/pandas/io/pytables.py:1041: DeprecationWarning: getNode() is pending deprecation, use get_node() instead. You may use the pt2to3 tool to update your source code. 
    return self._handle.getNode(self.root, key) 
127.0.0.1 - - [16/Sep/2014 09:04:31] "GET /test HTTP/1.1" 200 1481 

Однако, если вы должны были первоначально написать HDFStore в том же исходном файле питона в качестве приложения бутылки, test-bottle.py не появляется предупреждение устаревания. Это ошибка? Если нет, что именно здесь происходит?

ответ

1

Вы обычно не запускаете с включенной поддержкой DeprecationWarning. В любом случае это безобидное предупреждение от PyTables, которое изменил API (в версии 3.0.0) и в конечном итоге будет изменен.

Pandas 0.15.0 (1 месяц или около того для выпуска) будет использовать новый API и удалить предупреждение.

+0

Thanks Jeff. Мне просто интересно, почему появляется предупреждение, когда HDFStore создается за пределами файла приложения Bottle. Опять же, если я создаю хранилище в том же файле, что и приложение «Бутылка», не появляется предупреждение. – bazel

 Смежные вопросы

  • Нет связанных вопросов^_^