AttributeError: у объекта 'module' нет атрибута 'TimeSeries' после python Validation.py
Только что начал вычислительное инвестирование от Такера Балча. Я использую virtualbox и установил Ubuntu. После установки QSTK я запустил python Validation.py (Шаг 7). Я продолжаю получать:
AttributeError: у объекта 'module' нет атрибута 'TimeSeries'
Есть много похожих вопросов, поэтому я считаю, что проблема заключается в использовании того же имени, что и файл где-то в коде. Мне было интересно, есть ли у кого-нибудь решение, специфичное для этого класса и QSTK.
Полная ошибка:
Traceback (most recent call last):
File "Validation.py", line 122 in <module>
import QSTK.qstkutil.tsutil as tsu
File "usr/local/lib/python2.7/dist-packages/QSTK-0.2.8 py2.7.egg/QSTK/qstkutil/tsutil.py", line 19, in <module>
from QSTK.qstkutil import qsdateutil
File "usr/local/lib/python2.7/dist-packages/QSTK-0.2.8-py2.7.egg/QSTK/qstkutil/qsdateutil.py", line 38, in <module>
GTS_DATES = _cache_dates()
File "usr/local/lib/python2.7/dist-packages/QSTK-0.2.8-py2.7.egg/QSTK/qstkutil/qsdateutil.py", line 36, in _cache_dates
return pd.TimeSeries(index=dates, data=dates)
AttributeError: 'module' object has no attribute 'TimeSeries'
2 ответа
Я тоже столкнулся с этой проблемой. Это вызвано пандой lib. Вы можете попасть в путь (мой путь к файлу /Library/Python/2.7/site-packages/QSTK/qstkutil), где находится qstkutil.py в QSTK. Затем измените все "TimeSeries" этого файла на "Series".
Вы также можете получить некоторые идеи здесь ( https://github.com/QuantSoftware/QuantSoftwareToolkit/issues/73)
Корли на месте. Вы можете решить эту проблему, изменив 2 вхождения "TimeSeries" на "Series" в /usr/local/lib/python2.7/dist-packages/QSTK-0.2.8-py2.7.egg/QSTK/qstkutil/qsdateutil.py. "TimeSeries" также появляется один раз в /usr/local/lib/python2.7/dist-packages/QSTK-0.2.8-py2.7.egg/QSTK/qstkutil/tsutil.py, но я еще не столкнулся с ошибкой из-за этого.
Изменения TimeSeries
в Series
исправляет проблему для меня.
Кажется, что
import pandas as pd;
pd.TimeSeries = pd.Series
должно работать, но не для меня.