sudo 없이 python-dev를 어떻게 설치할 수 있나요?

sudo 없이 python-dev를 어떻게 설치할 수 있나요?

내 사용자 디렉터리(Sudo 권한이 없는 우분투 서버)에 Python 패키지(scikits.learn)를 설치하려고 하는데 다음과 같은 오류가 발생합니다.

error: Python.h: No such file or directory

python-dev가 설치되어 있지 않기 때문일 수 있습니다. 하지만 sudo 없이 python-dev를 어떻게 설치할 수 있나요? 아니면 Python.h에 대한 다른 쉬운 방법이 있습니까?

답변1

소스에서 자신만의 Python을 컴파일한 다음 원하는 모듈을 설치할 수 있습니다. http://docs.python.org/devguide/

답변2

약간의 강령술(이전 게시물 부활)이라는 것을 알고 있지만 동일한 문제에 직면했고 답변을 찾을 수 없어서 찾은 내용을 공유합니다...

내 솔루션:

저는 Sudo가 없고 Python 2.7만 설치된 우분투 16.04 데스크탑에서 작업하고 있습니다. 나는 sudo 없이 virtualevn을 설정하는데 성공했습니다.https://stackoverflow.com/questions/9348869/how-to-install-virtualenv-without-using-sudo) 그리고 jupyter를 설치하려고 할 때 "오류: Python.h: 해당 파일이나 디렉터리가 없습니다"라는 메시지가 누락된 것을 발견했습니다.

내 솔루션은 전혀 깨끗하지는 않지만 최소한 다음에 국한됩니다.virtualenv 및 가상 Python 폴더이다:

  1. 테스트 디렉터리 생성(package_download)
  2. no-sudo@pc:~/package_download$ apt-get 다운로드 libpython2.7-dev
  3. no-sudo@pc:~/package_download$ apt-get 다운로드 python-dev
  4. no-sudo@pc:~/package_download$ dpkg -x libpython2.7-dev_2.7.12-1ubuntu0~16.04.1_amd64.deb .
  5. no-sudo@pc:~/package_download$ dpkg -x python-dev_2.7.11-1_amd64.deb .

그러면 라이브러리가 다운로드되어 package_download 폴더에 추출됩니다. 이제 더러운 부분이 나옵니다. pip가 이 위치를 대상으로 지정하는 것을 허용하지 않았기 때문에 이 파일을 virtualenv 폴더 내부의 해당 위치에 추가했습니다...

  1. "~/package_download/usr/bin"을 내부의 bin 디렉토리와 병합하십시오.가상 파이썬설치 폴더(virtualenv를 설치하고 환경을 생성하는 데 사용한 폴더)이지만 어떤 파일도 바꾸지 마십시오.
  2. "~/package_download/usr/lib"를 내부 lib 디렉터리와 병합합니다.가상 파이썬폴더. 여기에는 충돌이 없습니다.
  3. "~/package_download/usr/include/python2.7"의 내용을 include/python2.7/ 폴더에 복사하세요. 여기에서는 충돌이 발생하지 않습니다. 이것은 실제로 가장 지저분한 부분입니다. 왜냐하면 우리는 다음의 설치 폴더를 수정하고 있기 때문입니다.가상 파이썬(이것은 sudo가 필요하지 않습니다. 왜냐하면 sudo가 필요하지 않기 때문입니다.가상 파이썬).
  4. "~/package_download/usr/include/x86_64-linux-gnu" 폴더를 include/python2.7/ 폴더에 복사하세요. 폴더 복사에는 문제가 없습니다...

이제 가상 환경을 실행하십시오.

  1. no-sudo@pc:~/running_virtualenv$ 소스 bin/활성화
  2. (running_virtualenv)no-sudo@pc:~/running_virtualenv$ pip install jupyter
  3. 즐기다...

당신이 그것을 발견했다면include/python2.7/심볼릭 링크라면 virtualenv 폴더를 가상 Python 폴더로 착각한 것입니다. (이 문제를 찾아주신 @andrzej1_1에게 감사드립니다)

관련 정보