Как зарегистрировать пользовательский пакет в zipline?

Я следую учебнику здесь:

http://www.prokopyshen.com/create-custom-zipline-data-bundle

и попытка настроить индивидуальный пакет, чтобы получить цену от пользовательских финансовых активов за пределами США. Я застрял на строке, которая говорит:

Advise zipline of our bundle by registering it via .zipline/extension.py

Мой файл extension.py находится в каталоге .zipline/ и имеет следующий код:

from zipline.data.bundles import register
from zipline.data.bundles.viacsv import viacsv
eqSym = {
    "CBA"
}

register(
    'CBA.csv',    # name this whatever you like
    viacsv(eqSym),
)

Я не понимаю, что значит зарегистрировать пакет через .zipline/extension.py? Я подумал, что это может означать просто запустить файл extension.py с моего терминала через:

python extenion.py

но это терпит неудачу и говорит:

ImportError: No module named viacsv

Как зарегистрировать этот пакет?


person sometimesiwritecode    schedule 20.07.2017    source источник


Ответы (3)


Я также следовал этому руководству, и я должен признаться, что эта часть немного сбивает с толку.

Прежде всего, я не думаю, что нужно запускать:

$ python extension.py

Сообщение об ошибке, которое вы получаете, вероятно, связано с тем, что Python не может найти файл viacsv.py в sys.path (места, где он ищет модули и т. д.). В учебнике, который вы упомянули, не совсем понятно, что делать с этим файлом. Что касается меня, то я только что сохранил файл viacsv.py в своем локальном каталоге site-packages. Поскольку я работаю в Linux, я поместил его туда ~/.local/lib/python2.7/site-packages, но у вас он может отличаться. Вы можете запустить следующий скрипт Python, чтобы узнать:

    import sys

    for dr in sys.path:
        print dr

Затем я просто заменил from zipline.data.bundles.viacsv import viacsv на from viacsv import viacsv в extension.py.

person Gillu13    schedule 20.08.2017

Я подозреваю, что вы ищете не то место для файла extension.py.

Для компьютера с Windows файл находится в папке «~\.zipline\extension.py». В моем случае это «C:\Users\XXXX\.zipline\extension.py».

Я искал папку zipline в папке сайтов-пакетов conda и не мог ее найти. Затем создал extension.py, задаваясь вопросом, почему он не вызывается.

Проверьте соответствующий пост здесь https://www.quantopian.com/posts/zipline-issue-while-creating-custom-bundle-to-bring-yahoo-data.

person Darkato    schedule 07.09.2017

Та же проблема, @Gillu13 указал мне на это решение. Я установил zipline через conda. Итак, zipline установлен в home/me/anaconda3/envs/krakenex/lib/python3.6/site-packages.

там вы найдете zipline/data/bundles и можете поместить туда viacsv.py...

тогда

from zipline.data.bundles.viacsv import viacsv

работает

person Hugo Koopmans    schedule 30.11.2017