Можно ли использовать Python с Intel Atom Developer SDK (C/C++)?
Итак, я сделал игру на Python и PyGame. Теперь я заинтересован в том, чтобы представить игру на мартовском конкурсе Intel для разработчиков. Однако задача разработчика требует использования Intel Atom Developer SDK ( http://appdeveloper.intel.com/en-us/sdk), который имеет API только для C и C++.
Я новичок в Python и PyGame, и не имею никакого опыта в C или C++. Мой вопрос заключается в том, можно ли каким-то образом реализовать Intel Atom SDK через / с / из приложения Python (как предполагает первая ссылка выше)?
Я прочитал немного о встраивании / расширении Python в / с C, но я не совсем уверен, что встраивать или где. Я имею в виду, я знаю, что могу делать такие вещи в C:
#include <Python.h>
int
main(int argc, char *argv[])
{
Py_Initialize();
PyRun_SimpleString("from time import time,ctime\n"
"print 'Today is',ctime(time())\n");
Py_Finalize();
return 0;
}
Но что мне делать со всеми моими зависимостями от Python и Pygame, для людей, которые не установили их на своих машинах? Обычно Py2Exe заботится о сжатии необходимых зависимостей (мне удалось упаковать мою игру в exe/zip), но как мне позаботиться об этом в контексте встраивания в C? Могу ли я как-то работать с py2exe на этом, или мне нужно сделать что-то совершенно другое для встраивания в C?
Кажется, что было бы намного проще пойти по пути расширения Python с помощью кода проверки C, чем пытаться встроить всю мою игру в C, но я думаю, что это не вариант ", потому что предоставляемая библиотека в настоящее время доступна только как ".lib" Visual Studio 2008 ", что означает, что приложение должно быть скомпилировано с Visual Studio...?
Любая помощь, мысли или идеи очень ценятся!
Вы можете найти полное руководство разработчика SDK на сайте Intel выше, но вот их "Hello World" с использованием языка C API:
#include <stdio.h>
#include “adpcore.h”
int main( int argc, char* argv[] )
{
ADP_RET_CODE ret_code;
const ADP_APPLICATIONID myApplicationID = {{
0x12345678,0x11112222,0x33331234,0x567890ab}};
if ((ret_code = ADP_Initialize()) != ADP_SUCCESS ){
printf( “ERROR: exiting” );
exit( -1 );
}
if (( ret_code = ADP_IsAuthorized( myApplicationId )) == ADP_AUTHORIZED )
printf( “Hello World” );
else
printf( “Not authorized to run” );
exit 0;
}
Руководство разработчика SDK на 35 страниц: http:// appdeveloper.intel.com/sites/files/pages/SDK%20Developer%20Guide.pdf
1 ответ
Не опускайтесь до голого C, если вы можете помочь. Напишите привязки, используя Cython.