Ответ 1
Я хочу вызвать те функции C или исполняемые файлы в python. Возможно ли это.
Да, вы можете написать код C, который можно импортировать в Python в качестве модуля. Python называет эти модули расширения. Вы можете вызвать его непосредственно из Python, например, из документации:
Код Python
import example
result = example.do_something()
C Код
static PyObject * example(PyObject *self)
{
// do something
return Py_BuildValue("i", result);
}
Если я хочу, чтобы C-код был библиотекой, это означает, что я использую его С#include и связью *.o, вероятно, в python, как это сделать или возможно.
Вы создаете его как общую библиотеку *. dll или *. so Вы также можете исследовать использование distutils для распространения вашего модуля.
Если я пишу код C в исполняемый файл, что означает, что он становится командой, могу ли я вызвать его непосредственно в python?
Если вы пишете *.exe, то вы делаете обратное (вызывая Python из C). Выбранный вами метод (exe vs shared library) зависит от того, хотите ли вы "программу C с некоторым Python" или "программу Python с некоторым C".
Кроме того, я слышал, что код python может быть скомпилирован, значит ли это, что мы можем выполнить код без исходного файла? Являются ли выходные файлы двоичными файлами? Улучшает ли производительность?
Python считывает файлы *. py и компилирует файлы *.pyc bytecode при запуске. Затем байт-код запускается на виртуальной машине Python. Это означает, что "выполнение того же файла происходит быстрее во второй раз, поскольку можно избежать перекомпиляции из источника в байт-код". (из глоссария Python) Итак, если вы не отредактировали свои файлы *. py, он запустит *. pyc. Вы можете распространять файлы *.pyc без файлов *. Py, однако они не зашифрованы и могут быть обратно спроектированы.