웹사이트 검색

패키지를 설치할 때 Python `No such file or directory` 컴파일러 오류를 수정하는 방법


소개

Python 모듈을 설치할 때 받을 수 있는 일반적인 오류는 No such file or directory 오류입니다. 일반적으로 설치하려는 패키지에서 파일이나 디렉토리가 누락되지 않았기 때문에 이것은 오해의 소지가 있습니다. 대신, 이 오류는 Python이 모듈 설치 중에 시스템 컴파일러를 호출하려고 하기 때문에 발생합니다. 이는 시스템 컴파일러에 대한 경로가 종종 Python 자체에 하드코딩되어 필요한 컴파일러 파일을 찾지 못하기 때문입니다. 이 자습서에서는 이 오류의 예와 여러 플랫폼에서 오류를 수정하는 단계를 제공합니다.

누락된 컴파일러 오류

Python 패키지는 일반적으로 pip install 명령과 함께 pip 패키지 관리자를 사용하여 설치됩니다. pip는 선택한 패키지에 추가로 필요한 종속성 목록과 설치 프로세스의 긴 출력 목록을 인쇄합니다. 경우에 따라 출력 끝 부분에 다음과 같은 텍스트가 포함된 오류와 함께 설치 프로그램이 종료됩니다.

Output
x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.10 -I/usr/local/lib/python3.10/dist-packages/numpy/core/include -I/usr/include/python3.10 -c radiomics/src/_cmatrices.c -o build/temp.linux-x86_64-3.10/radiomics/src/_cmatrices.o error: command 'x86_64-linux-gnu-gcc' failed: No such file or directory [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. error: legacy-install-failure × Encountered error while trying to install package. ╰─> pyradiomics note: This is an issue with the package mentioned above, not pip. hint: See above for output from the failure.

이 특정 오류는 pip install pd-dwi를 사용하여 화학 요법 연구에 사용되는 Python 라이브러리인 pd-dwi를 설치하려는 결과였습니다.

일부 Python 라이브러리, 특히 과학 컴퓨팅에 사용되는 라이브러리는 설치 후 컴퓨터에서 로컬로 추가 코드를 컴파일해야 합니다. Python은 Python 인터프리터 자체가 있는 경우에만 실행할 수 있는 고급 해석 언어입니다. 고성능 처리를 위해 Python 라이브러리에 가끔 포함되는 C 또는 Rust와 같은 저수준 언어는 실행하기 전에 컴파일하고 최적화해야 합니다. 시스템에 컴파일러가 없으면 설치가 실패합니다.

대부분의 최신 플랫폼에서 Python의 패키지 관리자인 pip를 설치하면 컴파일러 환경과 관련 패키지도 설정됩니다. 그러나 이것이 항상 발생하지 않는 몇 가지 이유가 있습니다. 예를 들어 컴파일러가 실수로 제거되었거나 처음부터 설치되지 않았을 수 있습니다. 그리고 Linux와 달리 Python 패키지는 일반적으로 Mac 또는 Windows의 시스템 패키지 관리자에 의해 설치되지 않으므로 문제가 발생할 가능성이 더 커집니다.

이 자습서의 다음 단계에서는 Ubuntu/Debian Linux, Red Hat/Rocky Linux, Windows 및 macOS에서 Python 호환 컴파일러를 설치하고 확인하기 위한 지침을 제공합니다.

Ubuntu 및 Debian용 컴파일러 패키지

Ubuntu에서는 잘 지원되는 최신 컴파일러 환경에 필요한 모든 패키지를 제공하는 build-essential 패키지를 설치할 수 있습니다. 빌드 필수메타 패키지로 알려진 것입니다. 하나의 패키지를 참조하지 않고 여러 공통 컴파일러 도구를 종속성으로 가져옵니다.

libpython3-dev를 설치할 수도 있습니다. 이것은 기본적으로 컴파일러를 Python에 "연결\하고 Python 또는 pip에서 컴파일러를 자동으로 호출하는 데 필요한 모든 백엔드 구성을 제공하는 오래된 Ubuntu/Debian 에코시스템 패키지입니다. 일반적으로 다음과 같습니다. pip와 함께 자동으로 설치되지만 패키지 관리자를 사용하지 않고 pip를 설치하면 놓칠 수 있습니다.

apt를 사용하여 패키지를 설치합니다.

  1. sudo apt install build-essential libpython3-dev

이것은 또한 많은 종속성을 설치합니다. 그런 다음 시스템에 make 명령이 있는지 확인하여 컴파일러를 사용할 수 있는지 확인할 수 있습니다. 이렇게 하려면 which 명령을 사용하세요.

  1. which make
Output
/usr/bin/make

make는 가장 널리 사용되는 오픈 소스 컴파일러인 gccMakefile을 구문 분석하는 데 사용하는 명령입니다. 각 패키지. 이제 경로에 make 버전이 설치되어 있으면 pip를 사용하여 Python 모듈을 다시 설치해 보십시오.

Red Hat 및 Rocky Linux용 컴파일러 패키지

Red Hat 및 Rocky Linux에서 dnf 패키지 관리자의 groups 기능을 사용하여 잘 지원되는 컴파일러 환경을 포함하는 패키지 그룹을 설치할 수 있습니다. 설치할 패키지 그룹을 \개발 도구\라고 합니다.

두 개의 dnf 명령을 사용하여 패키지 그룹을 설치합니다.

  1. sudo dnf groups mark install "Development Tools"
  2. sudo dnf groupinstall "Development Tools"

이것은 또한 많은 종속성을 설치합니다. 다음으로, 기본적으로 컴파일러를 Python에 "연결\하는 오래된 Red Hat 에코시스템 패키지인 python3-devel을 설치할 수 있습니다. python3-devel은 필요한 모든 백엔드 구성을 제공합니다. Python 또는 pip에서 컴파일러를 자동으로 호출하려면:

  1. sudo dnf install python3-devel

그런 다음 시스템에 make 명령이 있는지 확인하여 컴파일러를 사용할 수 있는지 확인할 수 있습니다. 이렇게 하려면 which 명령을 사용하세요.

  1. which make
Output
/usr/bin/make

make는 가장 널리 사용되는 오픈 소스 컴파일러인 gccMakefile을 구문 분석하는 데 사용하는 명령입니다. 각 패키지. 이제 경로에 make 버전이 설치되어 있으면 pip를 사용하여 Python 모듈을 다시 설치해 보십시오.

Windows 컴파일러 환경

Windows 컴파일러 문제는 더 까다로울 수 있습니다. Python을 설치하는 다양한 방법이 있고 각각 다른 컴파일러가 있을 것으로 예상하기 때문입니다.

  • WSL2와 함께 Python을 사용하는 경우 Linux에서 Python을 실행하는 것과 같으므로 배포판(기본적으로 Ubuntu)의 문제 해결 지침을 따를 수 있습니다.\n
  • Python을 Anaconda와 함께 사용하는 경우 conda 환경 내에서 자체 컴파일러 패키지를 제공하여 일반적으로 처음부터 이러한 오류를 방지합니다.\n
  • Windows에서 기본적으로 Python을 사용하는 경우 몇 가지 다른 고려 사항이 있습니다. 기본적으로 Windows의 Python은 Microsoft Visual Studio 빌드 도구를 사용하려고 시도합니다. 이것은 매우 큰 설치이며 주로 클라우드에서 작업하는 경우 익숙하지 않을 수 있지만 Linux에 make를 설치하는 것과 같이 설치 후 자동으로 작동해야 하는 많은 Windows 에코시스템 패키지를 추가합니다.\n
  • 이미 작동하는 버전의 오픈 소스 gccmake 빌드 도구가 Chocolatey를 사용하여 Windows 환경에 설치되어 있는 경우 대신 Windows에서 이 컴파일러를 사용하도록 Python에 지시할 수 있습니다. Python 설치 경로에 상대적인 Lib/distutils/distutils.cfg에 파일을 생성하고 다음 콘텐츠를 추가합니다.\n

[build]
compiler=mingw32

[build_ext]
compiler=mingw32

Windows에 컴파일러를 설치하는 데 문제가 있는 경우 대신 설치하려는 라이브러리에 대해 미리 컴파일된 휠 패키지를 설치할 수 있습니다. 하지만 pip에서 설치하는 것보다 덜 편리하고 일반적으로 임시 기반.

macOS 컴파일러 환경

macOS는 컴파일러 도구 체인을 Apple의 개발 제품군인 XCode에 번들로 제공합니다. Windows의 Visual Studio와 마찬가지로 XCode는 자체 인터페이스가 있는 완전한 개발 환경이지만 실제로 XCode 자체를 사용하여 Python 패키지를 컴파일할 필요는 없습니다. 대신 XCode 패키지 자체가 설치되어 있는지 확인만 하면 됩니다. xcode-select –install을 실행하여 이 작업을 수행할 수 있습니다.

  1. xcode-select --install

설치를 시작하라는 메시지가 표시되고 소프트웨어 라이선스에 동의하라는 메시지가 다시 표시됩니다. 그러면 도구가 자동으로 다운로드되어 설치됩니다.

결론

Python 생태계는 매우 강력하며 초보 개발자와 전문 개발자 모두 환영하지만 도구에서 차이가 발생하면 혼란스러울 수 있습니다. 이 자습서에서는 누락된 컴파일러 패키지의 결과로 발생할 수 있는 오류와 Python이 모듈 설치 시 하위 수준 코드를 컴파일해야 하는 경우 오류를 수정하는 방법을 배웠습니다.

다음으로 Python으로 코딩하는 방법 시리즈를 검토할 수 있습니다.