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

조회수 1963회

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를 새로 깔면서 문제가 생기는거 같습니다...

  • (•́ ✖ •̀)
    알 수 없는 사용자

2 답변

  • 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를 실행해보시면 됩니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • [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 이런식으로 나오는데 어떤게 잘못됐을까요... 알 수 없는 사용자 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" 
    

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)