표준 라이브러리없이 파이썬을 임베드 할 수 있습니까?파이썬을 표준 라이브러리없이 임베드 할 수 있습니까?
나는 cmake build for python 2.7.6 함께 일하고 있어요 그리고 난과 같이 실행 기본 내장 된 스크립트있어 :
#include <stdio.h>
#include <Python.h>
int main(int argc, char *argv[]) {
/* Setup */
Py_SetProgramName(argv[0]);
Py_Initialize();
/* Run the 'main' module */
int rtn = Py_Main(argc, _argv);
Py_Finalize();
return rtn;
}
를 ..하지만 내가 그것을 실행할 때, 내가 얻을 :
ImportError: No module named site
올바른 $ PYTHONHOME을 설정하면 제대로 작동합니다. 하지만 그건 내가하려는 일이 아니야. 파이썬 복사본을 표준 라이브러리없이 독립 실행 형 응용 프로그램에 포함하려고합니다.
이 사용법을 고맙게 생각합니다. 그러나이 특정 임베디드 환경에서는 부모 응용 프로그램에 의해 노출 된 특정 라이브러리 만 사용할 수있는 루아 (Python 구문이 분명합니다)와 같은 것을 원합니다.
표준 라이브러리를 크로스 링크 된 동적 라이브러리와 함께 배포 (또는 빌드)하지 않으므로 보너스가 추가되었습니다.
이 모든 기능을 사용할 수 있습니까? 아니면 필연적으로 표준 라이브러리의 일부인 sys.path, import, {}, [] 등과 같은 언어의 기본 블록을 찾지 못하게 될까요?
가능하다면 어떻게 할 것입니까?
왜 자신의 최소한의 '표준 라이브러리'를 제공하지? 'site.py' 만 포함하고, 'site.py'는 실행해야하며, 애플리케이션에 필요한 것은 무엇입니까? –
그러나 그렇습니다. CPython 구현에서는 특정 모듈이 존재하고 가져올 수 있어야합니다. Python 3에는 가져 오기 기능이 포함되어 있습니다. 'sys'는 빌트인 (built-in) 모듈입니다. 구문은 결코 가져 오지 않지만 언어의 일부이므로'{}'와'[] '는 깨지지 않을 것입니다. –
나는 이것에 대해 생각하고 있었지만, 하나의 바이너리와 함께 보내려면 약간 짜증이났다.py 파일; kivy가 kivy-ios 프로젝트에 대해 가져 오는 메커니즘을 해킹했을 가능성이 가장 낮고 필요한 최소 모듈을 포함 시키면 원시 텍스트 모양이 될 수 있다고 생각했지만 그 경로를 따라가는 방법을 정확히 모르겠습니다 ~ – Doug