pip install : 해당 디렉토리의 권한과 소유자를 확인하십시오


155

pip와 python을 설치하는 동안 다음과 같은 내용이 나왔습니다.

'/ Users / Parthenon / Library / Logs / pi'디렉토리 또는 상위 디렉토리가 현재 사용자의 소유가 아니며 디버그 로그가 사용 불가능합니다. 해당 디렉토리의 권한과 소유자를 확인하십시오. sudo와 함께 pip를 실행하는 경우 -H 플래그가 필요할 수 있습니다.

이제을 사용하여 설치해야하기 때문 sudo입니다.

파이썬과 소수의 라이브러리가 이미 Mac에 설치되어 있는데 요세미티를 실행 중입니다. 최근에 깨끗하게 닦아 낸 다음 OS를 다시 설치해야했습니다. 이제이 프롬프트가 표시되고 변경 방법을 알아내는 데 어려움이 있습니다.

내 명령 라인이되기 전에 Parthenon$지금이다Philips-MBP:~ Parthenon$

나는이 컴퓨터의 유일한 소유자이며 이것이 유일한 계정입니다. 이것은 파이썬 3.4로 업그레이드 할 때 문제가되는 것 같습니다. 적절한 곳에있는 것 같지 않으며 virtualenv는 내가 기대하는 곳으로 가지 않습니다.


귀하의 계정 이름은 Philip입니까?
komaromy

어제 내 컴퓨터에서 pip를 사용할 때 이런 일이 발생했음을 알았습니다. virtualenv가 예상 한 곳으로 가지 않는다는 것은 무엇을 의미합니까?
Padraic Cunningham

내 컴퓨터에 Python 3.4를 설치했지만 터미널에서 Python을 실행하면 전체 설치 프로세스를 거친 후에도 여전히 2.7이 실행됩니다. 나는 virtualenv에 대해서만 언급했다. 나는 일반적으로 Library / Python / 3.4에서 찾을 것으로 예상하지만 Library / Python / 3.4는 없다
Phil Andrews

python3 인터프리터를 사용하려면 python3 또는 python3.4와 같은 것을 사용해야합니다. 다시 여는 항목은 설정이므로 우분투에는 동일한 옵션이 있습니다.
Padraic Cunningham

@PadraicCunningham 같은 pip 문제가 있습니까? 최근에 요세미티로 업그레이드 했습니까?
Phil Andrews

답변:


127

또한을 실행 한 후 Mac에서이 변경 사항을 확인 pip했습니다 sudo pip. -Hsudo에 추가 하면 메시지가 사라집니다. 예 :

sudo -H pip install foo

man sudo대상 사용자 (이 경우 루트) 로 설정 되는 -H원인 sudo을 알려줍니다 $HOME.

그래서 핍으로 찾고 표시 $HOME/Library/Logsudo설정되지 기본적으로 $HOME/root/. 놀랍게도 ~/Library/Log루트가 아닌 사용자로서 귀하가 소유하고 있습니다.

나는 이것이 최근 핍의 변화라고 생각합니다. 나는 sudo -H지금 해결하기 위해 그것을 실행할 것이다 .


18
사용 sudo pip이 완전히 잘못되었습니다. 자세한 내용은 여기를 참조하십시오 stackoverflow.com/questions/33004708/…
Mikko Ohtamaa

나는 같은 문제가 있었지만 이제 "-H"플래그를 사용하여 설치해야합니다.
말라 치 바자르

62

여기서 문제는 어떻게 든 사용하여 virtualenv에 설치한다는 것 sudo입니다. 아마 우연히. 즉, root사용자는 Python 패키지 데이터를 다시 작성하여 루트가 소유 한 모든 파일을 만들며 일반 사용자는 더 이상 해당 파일을 쓸 수 없습니다. 일반적으로 virtualenv는 일반 UNIX 사용자 만 사용하고 소유해야합니다.

UNIX 파일 사용 권한 팩을 사용자로 변경하여 문제를 해결할 수 있습니다. 시험:

$ sudo chown -R USERNAME /Users/USERNAME/Library/Logs/pip
$ sudo chown -R USERNAME /Users/USERNAME/Library/Caches/pip

그런 다음 pip해당 파일을 다시 쓸 수 있어야합니다.

UNIX 파일 권한 관리에 대한 추가 정보


핍은 여전히 ​​오류로 씁니다. 또한 비슷한 경고가 있고 권한이 정확합니다. OP는 실제로 virtualenv를 사용하지 않으므로 패키지를 전역 적으로 설치하려면 sudo가 필요합니다.
Padraic Cunningham

1
@PadraicCunningham : pip에서 권한이 잘못되었다는 오류가 발생하면 파일 권한을 표시하여 문제가 무엇인지 알아낼 수 있습니다. 그렇지 않으면 도움이 될 것입니다.
Mikko Ohtamaa

또한 나는 당신의 문제는 원래 저자가 무슨 다를 수 있기 때문에 당신이 다른 질문을 열 제안
미코 Ohtamaa

내 사용자 이름을 사용하여 오류가 발생했습니다. 입력 : sudo chown -R USERNAME / Users / USERNAME / Library / Logs / pip 출력 : chown : / Users / USERNAME / Library / Logs / pip : 해당 파일 또는 디렉토리 없음
user2755660

61

pip install --user <package name> (do sudo 필요 없음) 매우 비슷한 문제로 저를 위해 일했습니다.


설치하려면 하나 이상의 요구 사항을 지정해야합니다 ( "pip help install"참조)
Amir

0

기본 정보

  • 시스템 : 맥 OS 18.0.0
  • 현재 사용자 : yutou

열쇠

  1. 휠 그룹에 현재 계정 추가
sudo dscl . -append /Groups/wheel wheel $(whoami)
  1. 파이썬 패키지 모드를 775로 수정하십시오.
chmod -R 775 ${this_is_your_python_package_path}

모든 일

  • python3이 잘 컴파일되면 정보는 질문이 말한 것과 같습니다.
  • 나는 사용하려고 노력했다 pip3 install requests.
File "/usr/local/python3/lib/python3.6/os.py", line 220, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: 
'/usr/local/python3/lib/python3.6/site-packages/requests'
  • 그래서 나는 cd /usr/local/python3/lib/python3.6/site-packages다음 ls -al을 얻었습니다.
drwxr-xr-x    6 root   wheel   192B  2 27 18:06 requests/

내가 이것을 보았을 때, makedirs는 쓰기 동작이지만, 요청 모드를 drwxrwxr-x대체 한 요청 모드 는 요청 파일을 쓸 수 있습니다. whoami그룹 휠 에 yutou ( )을 추가 하고 그룹 휠로 패키지를 수정하면 쓸 수 있고 쓸 수 있으며 문제가 해결됩니다.

그룹 휠에 yutou를 추가하는 방법? + 그룹 휠을 감지 sudo dscl . -list /groups GroupMembership하면 다음을 찾을 수 있습니다.

wheel                    root

그룹 휠에는 하나의 멤버 루트 만 있습니다. + 그룹 휠에 yutou를 추가하십시오 sudo dscl . -append /Groups/wheel wheel yutou. + 확인 sudo dscl . -list /groups GroupMembership:

wheel                    root yutou

파이썬 패키지 모드 수정

chmod -R 775 /usr/local/python3/lib/python3.6

0

$ PATH 변수를 변경하면 문제가 발생할 수도 있습니다. 이것이 문제 일 수 있다고 생각되면 ~ / .bash_profile 또는 ~ / .bashrc를 확인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.