2015-01-10 1 views
1

Мне недавно понадобилась статическая версия python в одном из моих проектов, поэтому я получил источник и построил его. После связывания его с моим приложением, когда я его запускаю, мне не хватает всех необходимых модулей, и я не знаю, куда их поместить.Static python build missing modules

Ошибки:

Could not find platform independent libraries <prefix> 
Could not find platform dependent libraries <exec_prefix> 
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>] 
'import site' failed; use -v for traceback 
Traceback (most recent call last): 
    File "<string>", line 1, in <module> 
ImportError: No module named time 

Код:

#include <Python.h> 

int main(int argc, char *argv[]) 
{ 
Py_SetProgramName(argv[0]); /* optional but recommended */ 
Py_Initialize(); 
PyRun_SimpleString("from time import time,ctime\n" 
       "print 'Today is',ctime(time())\n"); 
Py_Finalize(); 
return 0; 

}

Код для здания ехе:

gcc main.c -I/Desktop/Python-2.6.4 -I//Desktop/Python-2.6.4/Include -I/Desktop/Python-2.6.4/Modules -L/Desktop/Python-2.6.4 -lpython2.6 -static 

Tutorial for building python statically

Если кто-то может сказать мне, где поставить эти модули или даже лучше сказать мне, как связать их статически, это было бы очень признательно!

ответ

0

Не есть ответ на ваш вопрос, но я бы предложил попробовать портативное распределение Python, как эти:

Некоторые из них ориентированы на научные вычисления, но особенно пирун или переносные устройства должны предоставить вам небольшую упаковку.

Есть еще больше вариантов, возможно, один из них решает вашу проблему.

+0

Я не уверен относительно портативного python install, потому что он огромен. Сама установка составляет примерно 250 Мб, мне нужны только модули, которые составляют примерно 20 МБ. Я подумаю, но я не думаю, что смогу реализовать это в таком маленьком приложении. Спасибо за Ваш ответ! – gregyjames

+0

Что именно вы хотите достичь в итоге? Вы на Windows, верно? Может быть, создание исполняемого файла с py2exe или другим решением (http://docs.python-guide.org/en/latest/shipping/freezing/) может работать? Вы должны иметь возможность включать только те модули, которые необходимы вашему приложению. – jeverling

+0

Я только что установил PortablePython в Wine, после отмены выбора всех модулей размером до 50 МБ. Я думаю, что если вы удалите все, что не нужно (вы можете использовать https://docs.python.org/3.4/library/modulefinder.html, чтобы узнать, какие модули вы должны включить), вы должны иметь возможность уменьшить размер гораздо дальше. Если вы просто хотите отправить проект python, я бы проверял замороженные решения. – jeverling