Что делает Cython с импортом?

Я хочу создать расширение Python, и мне очень нравится идея использования Cython. В основном, чтобы получить больше знаний об этом и воспользоваться преимуществами скорости, если они есть. Я прочитал довольно много документации Cython, но я не ученый-компьютер (пока) и не имею глубоких знаний, чтобы понять основы низкого уровня, поэтому причина моих следующих вопросов:

Мне просто интересно, что произойдет, если я использую импортированный извне (например, библиотеку ORM или SQL или любую другую стороннюю библиотеку) в расширение Python, которое я разрабатываю?

Как Cython справляется с этим?

Есть ли разница, если эта импортированная библиотека / расширение находится в чистом Python или если она также скомпилирована?

Каков правильный способ справиться с этим?

Спасибо.

PS. Вопросы набираются жирным шрифтом.

One Solution collect form web for “Что делает Cython с импортом?”

Цель cython – быть совместимой с python, то есть вы можете cythonize любой код python, и он будет работать по-прежнему. В настоящее время большая часть кода python уже работает. Cython, кроме того, позволяет вам оптимизировать части вашего кода и скомпилировать его в более эффективный C-код.

При этом любой импорт python останется по умолчанию. Любые обращения к ним будут выдаваться в виде команд python. Даже если модуль написан на C, cython возьмет обход через python для вызова функций модуля. Если вы хотите напрямую использовать библиотеку C, вам нужно иметь привязки cython для них. Документация cython объясняет, как это сделать .

Как правило, python выступает в качестве надзирателя и обрабатывает области модулей / классов. Если код в одном модуле вызывает любую функцию python (или обращается к переменной python), python будет разрешать вызов в соответствии с объемом вызывающего. Если вызываемая функция находится во втором модуле, python с радостью использует ее. Вызывающий получает только результат и не должен заботиться о том, была ли другая функция в другом модуле или нет. Таким образом, ключ – это правила определения области действия python, которые определяют, какая функция вызывается.

  • Как получить доступ к переменной модуля python с помощью строки
  • Использование scipy.stats.stats в django после развертывания
  • Как сделать относительный импорт в Python?
  • Нужна помощь в понимании ошибок импорта модуля
  • Модули импорта Python, структуры папок
  • Как написать модуль Python?
  • ImportError: нет модуля с именем utils
  • Python pdb на скрипте python запускается как пакет
  • Python - лучший язык программирования в мире.