aws에서 장고를 설치하는데 pip install django 하면 자꾸 오류가 납니다


sudo 에서 pip 는 아예 안먹힘니다.

sudo easy_install pip 이렇게 치면


Searching for pip

Best match: pip 8.0.2

Adding pip 8.0.2 to easy-install.pth file

Installing pip script to /usr/local/bin

Installing pip3.5 script to /usr/local/bin

Installing pip3 script to /usr/local/bin

Using /usr/local/lib/python2.7/site-packages

Processing dependencies for pip

Finished processing dependencies for pip


이렇게 나오는데 pip 명령 치면 not found라고 합니다.

거기다가 sudo 가 아닐때는 pip가 되는데 pip install django 하면 error가 납니다.


OSError: [Errno 13] Permission denied: '/usr/local/lib64/python2.7/site-packages/Django-1.9.2.dist-info'


접근 금지가 떠서sudo에서 하려고 하는데 또 안되니까 미치겠습니다.. 도와주세요..ㅜㅜ

아마도 기존에 2.7 버전을 aws에서 지원하는데 3.4를 새로 깔면서 문제가 생기는거 같습니다...

  • 2016년 02월 24일에 작성됨

조회수 338


2 답변


좋아요
0
싫어요
채택취소하기

pip를 입력했는데 command not found가 나오는 것은 실행 path에 pip가 설치된 디렉토리인 /usr/local/bin이 없어서 그런 것입니다. 이 경우는 PATH 환경 변수에 다음을 추가하시면 됩니다.

export PATH=/usr/local/bin:$PATH

이것을 .bash_profile 등에 추가해놓으면 로그인할 때마다 매번 실행할 필요가 없습니다. 참고로 현재 설정된 PATH 환경변수를 확인하려면 echo $PATH를 실행하시면 됩니다.

그리고, 루트가 아닌 일반 사용자가 pip가 실행되는 이유는 python 2.7용 pip가 실행 path에 설정되어 있기 때문인데 그 실행파일이 있는 디렉토리를 확인하려면 which pip를 실행해보시면 됩니다.

  • 2016년 02월 24일에 작성됨
    Polyglot Programmer

  • [root@ip-172-31-27-63 bin]# ls pip pip2 pip2.7 pip3 pip3.5 /usr/local/bin 에 이렇게 다 설치가 이미 되어있는 상태입니다. echo $PATH 를 입력하면 /sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin 이런식으로 나오는데 어떤게 잘못됐을까요...    hsyoon702   2016.2.24 11:19     
  • 유닉스에서 명령어를 실행할 때 실행파일을 찾아야하는데 이 때 PATH 환경변수를 사용해서 실행파일을 찾습니다. 알려주신 PATH 환경변수를 보면 /sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin인데 여기에 /usr/local/bin이 있어야 새로 설치된 pip를 찾을 수 있습니다.     이확영   2016.2.26 10:59     
  • root 계정으로 설치한 pip가 /usr/local/bin에 있기 때문에 (로그의 Installing pip script to /usr/local/bin 부분) 이 디렉토리를 PATH 환경변수의 제일 앞에 두어야 새로 설치한 pip가 실행되는 것이구요    이확영   2016.2.26 11:00     
  • PATH 환경변수를 셋팅하려면 export PATH=/usr/local/bin:$PATH를 실행하시면 되고, 로그인할 때마다 실행되도록 하려면 이것을 .bash_profile이나 .profile에 추가하시면 됩니다.    이확영   2016.2.26 11:02     

만약 루트가 아닌 사용자에서 pip가 되는 경우, 다음과 같이 실행하시면 됩니다.

sudo env PATH=$PATH 명령어

다만, 매번 위와 같이 실행하는 것이 번거롭다면, /etc/sudoers 의 설정을 편집하면 됩니다.

sudo visudo

sudo 명령어 사용시, 현재 사용자의 PATH 환경변수를 적용하게 하려면

Defaults env_reset # 이 구문을 찾은 뒤에
Defaults env_keep = ...
Defaults env_keep += ...
...
Defaults env_keep += "PATH" # 이 문장을 추가하면됩니다.

이는 sudo 명령어 사용시 sudo 명령을 실행하고 있는 쉘의 환경변수를 유지하게 하는 설정입니다. 특정 사용자에게만 적용하려면 다음과 같이 Defaults 뒤에 :(콜론)을 붙인 후 허용할 계정이름을 써주면 됩니다.

Defaults:<username> env_keep += "PATH" 
  • 2016년 03월 12일에 작성됨
    리눅스(유닉스) 기반의 시스템에서 웹 서비스를 개발하고 있습니다.

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close