Mac에서 pipas 루트로 실행할 때 "권한 거부"를 받는 중
저는 직장에서 Windows PC를 사용하는 것과 같은 방식으로 Mac을 사용하여 Python 패키지를 설치하기 시작했습니다. 하지만 Mac에서는 로그 파일이나 사이트 패키지에 쓰는 동안 권한이 거부된 오류가 자주 발생했습니다.
그래서 나는 달리기를 생각했습니다.pip install <package>아래sudo하지만 제가 현재 사용자 계정에 설치하기를 원하는 것을 고려할 때 그것이 sudo를 안전하게/받아들일 수 있는 사용인가요?
로그 파일 I/O 오류로부터의 추적 예제:
Command /usr/bin/python -c "import setuptools;__file__='/Users/markwalker/build/pycrypto/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /var/folders/tq/hy1fz_4j27v6rstzzw4vymnr0000gp/T/pip-k6f2FU-record/install-record.txt failed with error code 1 in /Users/markwalker/build/pycrypto
Storing complete log in /Users/markwalker/Library/Logs/pip.log
Traceback (most recent call last):
File "/usr/local/bin/pip", line 8, in <module>
load_entry_point('pip==1.1', 'console_scripts', 'pip')()
File "/Library/Python/2.7/site-packages/pip-1.1-py2.7.egg/pip/__init__.py", line 116, in main
return command.main(args[1:], options)
File "/Library/Python/2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.py", line 141, in main
log_fp = open_logfile(log_fn, 'w')
File "/Library/Python/2.7/site-packages/pip-1.1-py2.7.egg/pip/basecommand.py", line 168, in open_logfile
log_fp = open(filename, mode)
IOError: [Errno 13] Permission denied: '/Users/markwalker/Library/Logs/pip.log'
업데이트 이것은 사용 권한에 대한 것일 수 있지만 가장 좋은 방법은 파이썬 프로젝트에 가상 환경을 사용하는 것입니다.입니다.sudo pip꼭 필요한 경우가 아니면 피해야 합니다.
가상 환경 사용:
$ virtualenv myenv
.. some output ..
$ source myenv/bin/activate
(myenv) $ pip install what-i-want
사용자만sudo또는 시스템 전체에 걸친 Python 설치를 위한 항목을 설치하려는 경우 사용 권한을 높입니다.
패키지를 격리하는 가상 환경을 사용하는 것이 가장 좋습니다.그렇게 하면 글로벌 파이썬 설치를 오염시키지 않고 놀 수 있습니다.
추가적으로 가상 환경에는 상승된 사용 권한이 필요하지 않습니다.
실행이 허용되고 안전합니까?
pip install아래sudo?
안전하지 않고 눈살을 찌푸리고 있습니다. 'sudo pip'을 실행할 경우 어떤 위험이 있습니까?홈 디렉토리에 Python 패키지를 설치하려면 루트 권한이 필요하지 않습니다.설명 참조--user피핑 옵션.
원래 문제는 pip이 폴더에 로그를 쓸 수 없다는 것입니다.
IOError: [Errno 13] Permission denied: '/Users/markwalker/Library/Logs/pip.log'
호출된 프로세스가 다음과 같이 쓸 수 있는 폴더에 CD를 넣어야 합니다./tmp비상대기상태cd /tmp명령을 다시 호출하는 것이 효과적일 수 있지만 원하는 것은 아닙니다.
하지만 실제로 이 특정한 경우(사용하고 싶지 않은 경우).sudoPython 패키지를 설치하는 경우) 및 글로벌 패키지 설치가 필요하지 않습니다.--user다음과 같은 플래그:
pip install --user <packagename>
그리고 그것은 잘 될 겁니다
1명의 사용자 python python이 설치되어 있고 virtualenv(매우 사용자 친화적이지 않음) 또는 pipenv에 대해 읽는 것을 원하지 않는다고 가정합니다.
코멘트 섹션의 일부 사람들이 지적했듯이, 무엇을 해야 할지 모르고 막히지 않는 한 다음 접근법은 그다지 좋은 생각이 아닙니다.
당신의 경우와 같은 글로벌 패키지에 대한 또 다른 접근 방식은 다음과 같습니다.
chown -R $USER /Library/Python/2.7/site-packages/
또는 보다 일반적으로
chown -R $USER <path to your global pip packages>
저도 같은 문제가 있었기 때문에 브라이언 케인의 첫 번째 의견이 "IOError: [Errno 13]" 문제에 대한 해결책이라는 것을 강조하고 싶습니다.
temp 디렉토리에서 실행되는 경우(cd /tmp), 가 더 .), 를 실행하면 IO 오류가 발생하지 않습니다.sudo pip install foo.
권한이 엉망이 된 것 같습니다. 형chown -R markwalker ~터미널에서 시도합니다.pip또요? 괜찮으시면 말씀해 주세요.
설치하는 동안 문제가 발생했습니다.virtualenvwrapper가 된 후virtualenv.
이 작업을 수행한 후 단말기에서 불만이 제기되었습니다.
pip install virtualenvwrapper
그래서 저는 실패했습니다.
(권장하지 않음) :
sudo pip install virtualenvwrapper
그런 다음 성공적으로 설치했습니다.
pip install --user virtualenvwrapper
언급URL : https://stackoverflow.com/questions/15028648/getting-permission-denied-when-running-pip-as-root-on-my-mac
'programing' 카테고리의 다른 글
| 첫 번째 공백 발생 시 분할 문자열 (0) | 2023.07.23 |
|---|---|
| 손상된 xampp 'mysql.user' 테이블을 어떻게 복구합니까? (0) | 2023.07.23 |
| 패키지 사양의 절차 (0) | 2023.07.23 |
| 다중 변수가 없음이 아닌지 확인하는 가장 단순한 방법은 무엇입니까? (0) | 2023.07.23 |
| numpy의 배열에서 축은 어떻게 인덱싱됩니까? (0) | 2023.07.23 |