저는 파이썬을 윈도우의 C 응용 프로그램에 포함 시켰습니다. 배포하려면 Python 폴더 전체를 내 exe 옆에 배치하십시오.C - 배포판에 파이썬 포함하기
\Installation Dir
app.exe
script.py
\python
테스트로서 나는 C 어플리케이션을 매우 간단하게 만들었습니다. 인터프리터를 설정하고 script.py
을 실행하려고 시도합니다. 여기
#include <Python.h>
#include <stdlib.h>
int main(int argc, char* argv[]){
Py_OptimizeFlag=1;
Py_SetPythonHome("python");
Py_SetProgramName(argv[0]);
Py_Initialize();
PySys_SetPath("python/Lib;python/DLLs;python/Lib/site-packages;");
PySys_SetArgv(argc, argv);
PyObject* PyFileObject = PyFile_FromString("script.py", "r");
PyRun_SimpleFileEx(PyFile_AsFile(PyFileObject), "script.py", 1);
Py_Finalize();
}
이 가끔 ... 잘 작동하는 것 같다. 일부 컴퓨터에서는 ImportError: DLL load failed
오류가 발생하며 일반적으로 _socket
을 참조합니다.
명시 적으로 경로를 Lib
및 DLLs
폴더를 가리 키도록 설정 했으므로이 오류가 발생하는 이유를 알 수 없습니까?
기존의 Python 버전과 충돌이 발생하지만, 이미 설치된 다른 버전의 Python과 함께 다른 PC에 성공적으로 설치되었습니다.
임베디드 파이썬이 필요한 것을 찾을 수 있도록 설정해야하는 다른 변수 또는 레지스트리 설정이 있습니까?
이상적으로는이 설치를 '자체 포함'하고 잠재적으로 다른 Python 버전의 사용자가 설치할 수 없으므로 레지스트리 값을 설정하지 않는 것이 좋습니다.
아이디어가 있으십니까?
파이썬이 설치되지 않은 PC에서이 방법을 사용해 보셨습니까? 나는'Py_SetPythonHome ("python")'이''Py_SetPythonHome ("C : \ Path \ To \ My \ AppFolder")의 행을 따라 무언가가 될 것이라고 예상 할 것이다 ... –
불행히도, 나는 PC를 가지고 있지 않다. 파이썬없이 설치 가능! VM을 설정하는 과정에 ... 절대 경로는 까다 롭습니다. 사용자가 프로그램을 어디서나 (잠재적으로) 설치할 수 있기 때문입니다. 그러나 나는 어떤 방법으로'getcwd'를 사용하여 경로를 구성 할 수 있다고 가정합니다. – jramm
예, 현재 실행 파일의 경로를 얻는 방법은 다양합니다. 그냥 그렇게하고 pythonhome으로 그 경로 + "/ python"을 설정하고 난 당신이 사업에있을 거라고 생각 ... –