Сторонние пакеты в алгоритмах Python
При создании сиБотов, индикаторов или плагинов на основе Python для cTrader вам может потребоваться использовать сторонние пакеты, такие как pandas, numpy или другие библиотеки. Это руководство показывает, как объявить такие зависимости в файле requirements.txt, что обеспечивает правильную работу вашего алгоритма в разных средах.
Настройка файла и правила
requirements.txt — это обычный текстовый файл, используемый для указания внешних пакетов Python, необходимых проекту. Ваш файл requirements.txt должен соответствовать следующим правилам:
- Файл должен называться точно
requirements.txt - Файл должен быть размещен в корне проекта рядом с вашим входным файлом Python (например,
Super cBot_main.py). - Файл должен быть включен в файлы проекта, чтобы он был упакован вместе с алгоритмом.
Как только файл requirements.txt будет присутствовать и правильно отформатирован, просто соберите свой проект, и все перечисленные зависимости будут добавлены и разрешены автоматически. Вот пример:
...\Documents\cAlgo\Sources\Robots\Super cBot\Super cBot
1 2 | |
Поддерживаемые функции
Формат requirements.txt следует стандартным соглашениям, используемым pip. Следующие примеры демонстрируют, как указывать версии пакетов с помощью спецификаторов версий, добавлять комментарии и использовать пустые строки для удобства чтения:
Закрепление точной версии
1 | |
Разрешение минимальной версии
1 | |
Использование комментариев и пустых строк
1 2 3 4 5 | |
Лучшие практики
- Закрепляйте критически важные библиотеки, чтобы избежать неожиданного поведения, когда новые релизы вносят критические изменения.
- Если вы используете диапазонные спецификаторы для менее критичных пакетов, тестируйте свой алгоритм при каждом обновлении зависимостей.
- Рекомендуется писать содержательные комментарии, объясняющие, почему были использованы определенные пакеты или почему были выбраны конкретные версии.
- Пересобирайте свой проект каждый раз, когда редактируете
requirements.txt, чтобы убедиться, что зависимости установлены правильно.
