답변:
python dev 용 헤더 파일과 정적 라이브러리를 제대로 설치하지 않은 것 같습니다. 패키지 관리자를 사용하여 시스템 전체에 설치하십시오.
위해 apt
( 우분투, 데비안 ... )
sudo apt-get install python-dev # for python2.x installs
sudo apt-get install python3-dev # for python3.x installs
의 경우 yum
( CentOS는, RHEL ... )
sudo yum install python-devel # for python2.x installs
sudo yum install python3-devel # for python3.x installs
대한 dnf
( 페도라 ... )
sudo dnf install python2-devel # for python2.x installs
sudo dnf install python3-devel # for python3.x installs
대한 zypper
( 오픈 수세 ... )
sudo zypper in python-devel # for python2.x installs
sudo zypper in python3-devel # for python3.x installs
들어 apk
( 알파인 ... )
# This is a departure from the normal Alpine naming
# scheme, which uses py2- and py3- prefixes
sudo apk add python2-dev # for python2.x installs
sudo apk add python3-dev # for python3.x installs
대한 apt-cyg
( Cygwin에서 ... )
apt-cyg install python-devel # for python2.x installs
apt-cyg install python3-devel # for python3.x installs
sudo yum install python27-devel
apt-get install python3.6-dev
에서 python3.6을 사용하고 있습니다.
sudo apt-get install python3.6-dev
sudo apt-get install python3.7-dev
.
우분투에서 Python 3을 실행 중이며 설치해야했습니다.
sudo apt-get install python3-dev
python3에 연결되지 않은 Python 버전을 사용하려면 관련 python3.x-dev 패키지를 설치하십시오. 예를 들면 다음과 같습니다.
sudo apt-get install python3.5-dev
sudo apt-get install python3.4-dev
Python3.4에 대한 명령 을 실행하면 문제가 해결되었습니다.
sudo apt-get install python2.7-dev
에는 문제가 해결되었습니다
python3-dev
을 사용하는 경우 python3
명령에 연결된 해당 버전의 종속성을 설치 합니다. 따라서 특정 버전을 설치하려면-와 같은 정식 버전을 사용하십시오 python3.x-dev
.
sudo apt-get install python3.6-dev
들어 파이썬 3.7 와 우분투 특히, 내가 필요
sudo apt install libpython3.7-dev
. 나는 어느 시점에서 이름이 이것으로 바뀌 었다고 생각 pythonm.n-dev
합니다.
Python 3.6의 경우 다음과 같습니다.
sudo apt install libpython3.6-dev
sudo apt install libpython3.6-dev
당신이해야 할 두 가지.
Python 용 개발 패키지를 설치하십시오. Debian / Ubuntu / Mint의 경우 다음 명령으로 완료됩니다.
sudo apt-get install python-dev
두 번째로 include 파일은 include 경로에 기본적으로 포함되어 있지 않으며 Python 라이브러리는 기본적으로 실행 파일과 연결되어 있지 않습니다. 이 플래그를 추가해야합니다 (Python 버전을 적절하게 대체하십시오).
-I/usr/include/python2.7 -lpython2.7
다시 말해 컴파일 명령은 다음과 같아야합니다.
gcc -Wall -I/usr/include/python2.7 -lpython2.7 utilsmodule.c -o Utilc
Fedora에서 Python 2에 대해 이것을 실행하십시오.
sudo dnf install python2-devel
그리고 파이썬 3의 경우 :
sudo dnf install python3-devel
apt-get install python-dev
입니다.
당신은 할 필요 패키지를 설치 python2-devel
하거나python3-devel
사용중인 파이썬 버전에 따라.
Cygwin.com 에서 32 비트 또는 64 비트 setup.exe
(설치에 따라 다름)를 사용하여 빠르게 설치할 수 있습니다 .
예 ( setup.exe
필요한 경우 파일 이름과 Python의 주 버전을 수정하십시오 ) :
$ setup.exe -q --packages=python3-devel
명령 줄에서 Cygwin의 패키지를 설치하는 몇 가지 추가 옵션에 대한 다른 답변 을 확인할 수도 있습니다.
AWS API (centOS)에서
yum install python27-devel
pip install cryptography
Amazon Linux 인스턴스에서 시도하는 문제를 극복하는 데 도움이되었습니다 .
나를 위해 이것을 다음과 같이 변경했습니다.
#include <python2.7/Python.h>
내가 파일을 발견 /usr/include/python2.7/Python.h
하고, 이후 /usr/include
(가) 경로를 포함 이미하고 python2.7/Python.h
충분해야한다.
대신 명령 줄에서 include 경로를 추가 할 수도 있습니다 gcc -I/usr/lib/python2.7
(@ erm3nda 덕분에).
gcc -I/usr/lib/python2.7 etc
포함 호출을 하드 코드하는 대신 lib를 설정하는 것이 좋습니다 .
필자의 경우 우분투에서 수정 한 것은 패키지를 설치하는 것입니다 libpython-all-dev
(또는 libpython3-all-dev
Python 3을 사용하는 경우).
python-all-dev
내 경우에는, 그러나 충분히 가까이.
3.6 파이썬 (가장자리)과 함께 virtualenv를 사용하는 경우 일치하는 python 3.6 dev를 설치하십시오 sudo apt-get install python3.6-dev
. 그렇지 않으면 실행 sudo python3-dev
하면 python dev 3.3.3-1이 설치되어 문제가 해결되지 않습니다.
그것은 같은 상황이 아니지만 나에게도 효과가 있으며 이제 Python3.5 와 함께 SWIG 를 사용할 수 있습니다 .
컴파일하려고했습니다.
gcc -fPIC -c existe.c existe_wrap.c -I /usr/include/python3.5m/
Python 2.7에서는 버전 3.5가 아니라 제대로 작동합니다.
existe_wrap.c : 147 : 21 : 치명적인 오류 : Python.h : 없음 el archivo o el directorio 컴파일이 종료되지 않았습니다.
내 Ubuntu 16.04 설치에서 실행 한 후 :
sudo apt-get install python3-dev # for python3.x installs
이제 파이썬 3.5 문제없이 컴파일 할 수 있습니다 :
gcc -fPIC -c existe.c existe_wrap.c -I /usr/include/python3.5m/
적절한 파일을 사용해보십시오. 누락 된 파일이있는 패키지 이름은 기억하기 어렵습니다. 일반적이며 모든 패키지 파일에 유용합니다.
예를 들면 다음과 같습니다.
root@ubuntu234:~/auto# apt-file search --regexp '/Python.h$'
pypy-dev: /usr/lib/pypy/include/Python.h
python2.7-dbg: /usr/include/python2.7_d/Python.h
python2.7-dev: /usr/include/python2.7/Python.h
python3.2-dbg: /usr/include/python3.2dmu/Python.h
python3.2-dev: /usr/include/python3.2mu/Python.h
root@ubuntu234:~/auto#
이제 어느 것을 선택할지 전문가가 추측 할 수 있습니다.
CentOS 7의 경우 :
sudo yum install python36u-devel
여러 VM에 python3.6을 설치하기위한 여기의 지침을 따르십시오 : https://www.digitalocean.com/community/tutorials/how-to-install-python-3-and-set-up-a-local-programming- environment-on-centos-7 그리고 mod_wsgi를 빌드하고 python3.6 virtualenv로 작동시킬 수있었습니다.
이 오류는 Python3.6으로 CentOS 7에 ctd를 설치하려고 할 때 발생했습니다. 를 포함하여 여기에 언급 된 모든 트릭을 수행했습니다 yum install python34-devel
. 에서 문제가 Python.h
발견되었습니다 /usr/include/python3.4m but not in /usr/include/python3.6m
. --global-option
dir ( pip3.6 install --global-option=build_ext --global-option="--include-dirs=/usr/include/python3.4m" ctds
) 을 포함시키기 위해 사용하려고했습니다 . 이것은 lpython3.6m
ctd를 연결할 때 찾을 수 없었습니다.
마지막으로 Python3.6의 개발 환경을 수정하는 작업은 include 및 libs로 수정해야합니다.
yum -y install https://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/python36u-libs-3.6.3-1.ius.centos7.x86_64.rpm
Python.h는 gcc의 포함 경로에 있어야합니다. 어떤 버전의 파이썬이 사용되는지, 예를 들어 3.6 인 경우 /usr/include/python3.6m/Python.h
일반적으로 있어야합니다 .
물론 python-dev
또는 libpython-all-dev
(에 제일 먼저입니다 apt
) install
,하지만 내 경우와 같이 그 도움이되지 않는 경우, 내가 설치하도록 조언 외국 기능 인터페이스 로 패키지를 sudo apt-get install libffi-dev
하고 sudo pip install cffi
.
오류가 /에서 표시되는 경우 특히 도움이됩니다 c/_cffi_backend.c:2:20: fatal error: Python.h: No such file or directory
.
운영 체제와 함께 제공되는 Python과 함께 제공되지 않으면 운영 체제에 Python 개발 파일을 설치해야합니다. 이 질문에 대한 많은 답변은 다른 시스템에서 이것이 달성 될 수있는 무수한 방법을 보여줍니다.
때 당신이 그렇게 한 문제는이 위치하고있는 컴파일러를 말하고 어떻게 그들에 대해 컴파일 할 수 있습니다. 파이썬에는이라는 프로그램이 python-config
있습니다. 컴파일하려면 --includes
출력 이 필요하고 출력을 파이썬 라이브러리 (파이썬을 프로그램에 임베드)와 연결하는 프로그램 이 필요합니다 --ldflags
. 예:
gcc -c mypythonprogram.c $(python3-config --includes)
gcc -o program mypythonprogram.o $(python3-config --ldflags)
python-config
이이 이름을 지정할 수 있습니다 예를 들어 데비안, 우분투 - 프로그램은 파이썬 버전의 이름을 따서 명명 할 수있다 python3-config
나 python3.6-config
.
때때로 python-dev를 설치 한 후에도 오류가 지속되면 'gcc'가없는 경우 오류를 확인하십시오.
https://stackoverflow.com/a/21530768/8687063에 설명 된대로 먼저 다운로드 한 다음 gcc를 설치 하십시오 .
apt (Ubuntu, Debian ...)의 경우 :
sudo apt-get install gcc
yum (CentOS, RHEL ...)의 경우 :
sudo yum install gcc
dnf (Fedora ...)의 경우 :
sudo dnf install gcc
zypper (openSUSE ...)의 경우 :
sudo zypper in gcc
APK (알파인 ...) :
sudo apk gcc
locate Python.h
하고 모든이 작업을 수행하기 전에 이미 파일이 있는지 확인합니다. 당신이있는 파일을 찾을 수 있다면, 대부분이 답변이 작동합니다 stackoverflow.com/a/19344978/4954434는 (그것은 단지 경로 문제가있을 수 있습니다)