Можно ли использовать Python с Intel Atom Developer SDK (C / C ++)? - PullRequest
0 голосов
/ 26 марта 2010

Итак, я сделал игру на Python и PyGame. Теперь я заинтересован в том, чтобы представить игру на Intel's March Challenge . Однако задача разработчика требует использования 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 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; 
}

35 Page SDK Руководство разработчика: http: // appdeveloper.intel.com/sites/files/pages/SDK%20Developer%20Guide.pdf

1 Ответ

1 голос
/ 26 марта 2010

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

...