Могу ли я написать свои приложения на Python, а затем запустить их из C? - PullRequest
0 голосов
/ 27 апреля 2009

Мне нужно написать клиент-серверное приложение. Я хочу написать это на python, потому что я знаком с ним, но я хотел бы знать, можно ли запустить код на python из C. Я планирую иметь два проекта C, один из которых содержит код сервера, а другой - содержащий код клиента.

Можно ли проверить код python и запустить его? Есть ли другой способ сделать это?

Суть в том, что код Python должен запускаться из C, и он должен вести себя точно так же, как если бы он запускался под интерпретатором Python. Я спрашиваю об этом сейчас, потому что я не хочу тратить время на написание кода на Python, чтобы потом выяснить, что я не могу этого достичь. В качестве идентификатора я планирую использовать только базовые модули Python (socket, select и т. Д.).

РЕДАКТИРОВАТЬ: возможно, это редактирование в порядке. Я не встраивал Python в C раньше, и я не знаю, как будет вести себя. Дело в том, что сервер будет иметь цикл выбора и, следовательно, будет работать «навсегда». Позволит ли мне С это сделать?

EDIT2: вот почему мне нужно сделать это. В школе учитель попросил нас сделать довольно сложное клиент-серверное приложение на C. Я собираюсь обмануть, написать код на python и встроить его в C.

Ответы [ 3 ]

5 голосов
/ 27 апреля 2009

вот хороший урок, чтобы сделать именно это http://www.linuxjournal.com/article/8497

2 голосов
/ 27 апреля 2009

Это называется встраивание Python - это хорошо описано в документации по Python. Смотри https://docs.python.org/extending/embedding.html

См. Как мне использовать библиотеки Python в C ++?

1 голос
/ 27 апреля 2009

Да, вы можете запустить код Python из C, встроив интерпретатор в вашу программу. Вы можете представить части вашего кода C в Python и вызывать ваш открытый код C из Python, как если бы они были обычными функциями Python.

Хорошим началом является раздел Embedding в документации по Python. Также обратите внимание на статью , связанную с коббалом.

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