2

파이썬 함수를 호출하는 C 코드를 실행할 때 Py_Initialize() 오류가 발생했습니다. 오류는 ImportError : site라는 모듈이 없습니다. 필자는 Py_SetProgramName (argv [0])을 넣으려고했지만 작동하지 않습니다. cmd 호출은 cInterfacePython Test.py 곱하기 3 2 (exe는 cInterfacePython 임)초기화시 파이썬 오류 포함

+0

파이썬 설치와 같은 사운드가 엉망입니다. 그것에 대해 더 많이 알려주시겠습니까? –

+0

나는 python을 컴퓨터에 직접 설치하지 않았기 때문에 ... 그 이유에 대해 자세히 알지 못합니다. – PeterG

+0

@ user1023894 : 질문에 대한 답변을 얻지 못해서 내 게시물을 삭제했습니다. python.exe가 자신의 'cinterfacepython'과 동일한 환경에서 작동하는지 테스트 할 수 있습니까? – Macke

답변

3

PATH env-var뿐만 아니라 PYTHONPATH를 사용하여 임베딩 할 때 더 잘 작동하도록해야했습니다.

Py_SetProgramName ... 그것은 등 내부 참조를 위해 주로, 그래서

중요하지, 난 당신이 파이썬 로컬로 설치된 위치를 찾을 수 있습니다 (이것은 Windows 시스템의 레지스트리에서 사용할 수 있습니다) 및 PATH를 설정 setenv를 사용하는 것이 좋습니다 그리고 PYTHONPATH를 적절한 것으로 바꾸십시오. 위의 주석에서와 같이 PATH에 대한 python.exe 디렉토리가 될뿐만 아니라 자신의 파이썬 코드가있는 dir에 PYTHONPATH를 설정하고 embed exe에서 실행중인 관련 라이브러리를 설정합니다.

그런 다음 Py_Initialize를 실행하고 올바른 일이 일어나는지 확인하십시오. 이후에 PYTHONPATH를 수정해야하는 경우 PySys_SetPath()를 사용하여 sys.path를 수정하십시오.

+0

당신은 PySide를 사용하고 있습니까? 그래서 app_path로 응용 프로그램의 경로를 설정하면 python26 파일에 대한 환경 경로가 설정됩니까? 또는 PyRun_SimpleString cmd가 올바른 파일을 가져 옵니까? 하지만 메신저 Py_initialize에서 충돌 .... – PeterG

+0

나는 (Python.exe의 위치로) PYTHONPATH 대신에 PYTHONHOME env-var를 설정해야했습니다. –

1

동일한 문제 (Windows, Visual Studio 및 MinGW/g ++ 모두)를 가지고 있었고 PYTHONPATH에 site.py의 경로를 추가하여 해결했습니다. 어떤 이유로 Python.exe를 실행해도 Python.exe를 실행할 수 없었고 sys.path에 해당 경로가 포함되어 있었지만 (PYTHONPATH가 아닌 경우에도) "사이트 가져 오기"가 가능했지만 Py_Initialize는 같은 작업을 수행 할 수 없었습니다. python.exe 않았다.