Как сделать запрос с математическими функциями в SQLAlchemy? - PullRequest
0 голосов
/ 29 марта 2020

Я пытаюсь создать запрос на основе расстояния между двумя географическими точками, рассчитанного по формуле Хаверсайна. (К вашему сведению, я использую Flask.)

Это мой метод, который должен функционировать как условие фильтра в запросе:

@hybrid_method
def is_nearby(self, latitude, longitude, radius):
    return acos(sin(radians(latitude)) * sin(radians(self.latitude)) + cos(radians(latitude)) * cos(radians(self.latitude)) * cos(radians(self.longitude) - (radians(longitude)))) * 6371 <= radius

Но sqlalchemy.func не содержит математических функций, таких как acos, radians и sin et c. Этот метод не работает без них.

Я заметил, что для этого есть расширение . Но как, черт возьми, реализовать это расширение (я не привык использовать другие языки программирования, кроме Python, Javascript et c.)?

Я нашел руководство , где я должен был загрузить, казалось бы, огромное количество программного обеспечения, чтобы все это заработало, и я это сделал. Но затем, когда я открыл оболочку MSYS2 и набрал gcc -fPIC -lm -shared extension-functions.c -o libsqlitefunctions.dll, я получил сообщение об ошибке bash: gcc: command not found. И когда я попытался установить набор инструментов MinGW-w64 с помощью этой команды:

pacman -S mingw-w64-x86_64-toolchain mingw-w64-x86_64-cairo mingw-w64-x86_64-xz mingw-w64-x86_64-lz4

, он просто не удался: Aborted (core dumped)

Как мне установить это расширение? И есть ли необязательный обходной путь к установке этого?

Этот вопрос является продолжением этого

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...