해결됨 - Python.h: C++에 이러한 파일 또는 디렉토리가 없음
-
C++에서
'Python.h': No such file or directory
오류의 원인 - C++에 코드를 포함할 수 있는 Python 설치
-
IDE의
Include
및 링커에 Python 경로를 추가하는 단계 -
Include
및 링커에 Python 경로 추가 - C++로 Python 코드 작성 및 컴파일
- 결론
이 문서에서는 'Python.h': No such file or directory
오류를 해결하는 방법을 설명합니다. 이것은 일반적으로 C++에 Python 코드를 포함하려고 시도하지만 컴파일러가 시스템 내에서 Python에 대한 참조를 찾을 수 없을 때 발생합니다.
C++에서 'Python.h': No such file or directory
오류의 원인
다음은 Python 코드를 사용하는 C++ 프로그램입니다.
#include <Python.h>
#include <conio.h>
#include <stdio.h>
int main() {
PyObject* pInt;
Py_Initialize();
PyRun_SimpleString("print('Hello World from Embedded Python!!!')");
Py_Finalize();
printf("\nPress any key to exit...\n");
if (!_getch()) _getch();
return 0;
}
이 프로그램을 컴파일하면 'Python.h': No such file or directory
오류가 발생합니다.
Build started...
1>------ Build started: Project: Python into Cpp, Configuration: Debug x64 ------
1>1.cpp
1>C:\Users\Win 10\source\repos\Python into Cpp\1.cpp(3,10): fatal error C1083: Cannot open include file: 'Python.h': No such file or directory
1>Done building project "Python into Cpp.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
여러 가지 이유로 'Python.h': No such file or directory
문제가 발생합니다.
-
시스템 내부에 Python이 설치되어 있지 않습니다.
Python은 표준 Windows 및 C++ 컴파일러 설치와 함께 제공되지 않는 타사 엔터프라이즈 소프트웨어입니다. 올바른 설정으로 설치하고 C++ 컴파일러에 연결해야 합니다.
-
C++ 컴파일러가 Python을 찾을 수 없습니다.
컴파일러가 IDE 또는 mingw4를 통해 실행되는 경우 표준 설치와 함께 제공되는 패키지가 포함된 표준 C++만 감지할 수 있습니다.
IDE
include
및 링커 파일에 타사 라이브러리를 추가해야 합니다.위의 문제를 해결하려면 세 단계를 실행해야 합니다.
- Python을 IDE에 내장할 수 있도록 Python을 사용자 지정 설치합니다.
- IDE
include
및 링커 경로에 Python 경로 추가. - C++ 코드 내에서 Python 코드를 작성하고 컴파일합니다.
C++에 코드를 포함할 수 있는 Python 설치
시스템 내부에 Python이 없거나 설치 및 연결되었지만 여전히 'Python.h': No such file or directory
오류가 발생하는 경우 Python 설치 시 디버그 바이너리를 다운로드하지 않았기 때문입니다.
'Python.h': No such file or directory
오류를 해결하려면 Python을 제거한 다음 올바르게 다시 설치하는 것이 좋습니다.
Python 웹사이트로 이동하여 최신 Python 버전을 다운로드합니다. 특정 버전이 필요한 경우 모든 릴리스
다운로드 섹션으로 이동하십시오.
이 문서는 Windows OS의 단계를 보여주므로 적절한 옵션은 Windows 설치 프로그램(64비트 또는 32비트)
을 사용하는 것입니다. 최신 PC를 사용하는 경우 64비트 버전 사용을 권장합니다.
다운로드가 완료되면 설치 프로그램을 실행하고 설치 사용자 지정
을 선택합니다. 지금 설치
옵션은 기본 설정으로 Python을 설치하지만 IDE에 포함할 수 있는 디버그 바이너리는 제외합니다.
Add Python X.X(version) to PATH
를 묻는 상자를 선택한 다음 설치 사용자 지정
을 클릭합니다.
다음 페이지에서 모든 상자를 선택하고 다음을 클릭합니다.
세 번째 메뉴에서 디버그 바이너리 다운로드
상자를 선택하고 설치
를 클릭합니다. Python은 선택한 디렉토리에 설치됩니다.
IDE의 Include
및 링커에 Python 경로를 추가하는 단계
표준 설치에서 C++와 함께 제공되지 않는 타사 라이브러리는 IDE를 참조해야 합니다. IDE는 시스템 내부의 타사 라이브러리를 자동으로 검색하고 감지할 수 없습니다.
이것이 'Python.h': No such file or directory
오류가 발생하는 이유입니다.
IDE는 패키지 라이브러리가 C++ 스크립트가 있는 동일한 디렉토리에 저장되어 있을 때 파일을 검색할 수 있지만 해당 경로는 프로그램의 #include<>
헤더 안에 언급되어야 합니다.
그러나 이러한 방식으로 종속성을 저장하는 것은 나쁜 습관입니다.
해야 할 일은 라이브러리의 경로를 IDE에 연결하여 표준 헤더 파일이 포함되는 방식으로 포함될 수 있도록 하여 소스 코드와 함께 파일 경로를 제공할 필요가 없도록 하는 것입니다.
표준 설치에서 C++와 함께 제공되지 않는 타사 라이브러리는 IDE를 참조해야 합니다. IDE는 시스템 내부의 타사 라이브러리를 자동으로 검색하고 감지할 수 없습니다.
이것이 'Python.h': No such file or directory
오류가 발생하는 이유입니다.
처음에는 IDE가 필요합니다. Visual Studio(2017 이상)를 사용하는 것이 좋으며 이 문서에서는 동일한 내용을 다룹니다.
다른 IDE도 사용할 수 있으며 단계는 대부분 동일하지만 Visual Studio에서는 간단합니다.
시스템에 Visual Studio 설치
Visual Studio의 설치 프로그램은 여기에서 다운로드할 수 있습니다. 64비트 커뮤니티 버전을 다운로드한 후 C++ 개발 옵션을 포함하여 소프트웨어를 설치합니다.
설치가 완료되면 새 프로젝트를 생성합니다.
이전에 Visual Studio를 사용해 본 적이 없는 독자에게는 창이 위협적으로 보일 수 있지만 걱정할 필요는 없습니다. 필요한 대부분의 기능이 앞에 있으며 이 기사에서 나머지를 안내합니다.
프로젝트를 만들고 ‘Python in cpp’와 같은 이름을 지정합니다. 프로젝트가 생성되면 기본 창은 다음과 같이 표시됩니다.
검은색 화면만 있는 경우 Ctrl+Alt+l를 누르면 솔루션 탐색기가 열립니다. 솔루션 탐색기에는 프로젝트에 사용할 수 있는 모든 파일과 종속성이 표시됩니다.
Include
및 링커에 Python 경로 추가
이 단계에서는 #include <python.h>
가 작성될 때 IDE가 찾을 위치를 알 수 있도록 Python 경로가 포함되고 Visual Studio에 연결됩니다.
이 단계의 전제 조건은 Python이 설치된 디렉토리를 알고 다른 창에 열어 두는 것입니다. 이제 디버그
> 프로젝트 이름
> 속성
으로 이동합니다(프로젝트 이름
대신 프로젝트 이름이 표시됨).
프로젝트 속성 창에서 C/C++
> 일반
> 추가 포함 디렉터리
로 이동하고 맨 오른쪽에 있는 작은 드롭 버튼을 클릭한 다음 <편집...>
을 클릭합니다.
추가 포함 디렉터리
대화 상자가 열립니다. 여기에서 첫 번째 빈 공간을 두 번 클릭하고 시스템 내부에 Python이 설치된 디렉터리에서 include
폴더의 경로를 붙여넣은 다음 확인
을 클릭합니다.
include
디렉토리 경로가 추가된 후 Linker
> General
> Additional Library Directories
로 이동합니다. 이전 단계와 마찬가지로 <편집...>
을 클릭합니다.
이제 libs
폴더가 링커에 추가되어야 합니다. 이 폴더는 include
폴더가 있는 Python 디렉터리에서도 찾을 수 있습니다.
추가한 후 확인
을 클릭한 다음 적용
을 클릭합니다.
C++로 Python 코드 작성 및 컴파일
include
및 링커 경로가 추가되면 위의 단계가 올바르게 실행되었는지 확인하기 위해 샘플 프로그램을 컴파일해야 하며 'Python.h': No such file or directory
오류가 다시 발생하지 않습니다.
솔루션 탐색기로 이동하여 소스 파일을 마우스 오른쪽 버튼으로 클릭합니다. 추가
> 새 항목
을 클릭하고 파일 이름을 지정하고 추가를 클릭합니다.
이 새 파일에는 컴파일될 코드가 포함됩니다.
아래는 오류가 발생한 기사의 시작 부분에 사용된 C++ 프로그램입니다.
#include <Python.h>
#include <conio.h>
#include <stdio.h>
int main() {
PyObject* pInt;
Py_Initialize();
PyRun_SimpleString("print('Hello World from Embedded Python!!!')");
Py_Finalize();
printf("\nPress any key to exit...\n");
if (!_getch()) _getch();
return 0;
}
이제 상단의 녹색 재생 버튼을 클릭하여 파일을 컴파일하면 다음과 같은 출력이 표시됩니다.
Hello World from Embedded Python!!!
Press any key to exit...
결론
이 문서에서는 'Python.h': No such file or directory
오류를 해결하는 단계를 설명합니다. 이 기사를 읽은 독자는 Python 및 Visual Studio를 설치하고 Python 라이브러리에 연결할 수 있습니다.