Можно ли использовать 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, но я думаю, что это не вариант, «поскольку предоставленная библиотека в настоящее время доступна только как Visual Studio 2008 '.lib'", что означает, что приложение должно быть скомпилировано с помощью Visual Studio...?

Любая помощь, мысли или идеи очень ценятся!



Полное руководство для разработчиков SDK можно найти на указанном выше сайте Intel, а вот их "Hello World" с использованием C Language 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


person Jordan Magnuson    schedule 26.03.2010    source источник


Ответы (1)


Не опускайтесь до голого C, если можете. Напишите привязки, используя Cython.

person Ignacio Vazquez-Abrams    schedule 26.03.2010