virtualenv와 함께 pip를 사용할 때 "Permission denied"를 방지하는 방법
pip
Ubuntu 머신의 가상 환경에서 Python 패키지를 배포하려고 하는데 권한 관련 문제가 발생합니다. 예를 들면 :
(TestVirtualEnv)test@testServer:~$ pip install markdown2
종료 :
error : could not create '/home/test/virtualenvs/TestVirtualEnv/lib/python3.3/site-packages/markdown2.py': Permission denied
sudo
가상 환경이 아닌 전역 적으로 패키지를 설치하므로 할 수 없습니다 . 나는 chown
에드 site-packages
; ls
프로그램은 관련 디렉토리 easy_install
, pip
그리고 setuptools
, 아무것도 마크 다운 관련이 없습니다.
pip
권한 관련 오류없이 가상 환경에서 패키지를 배포하는 방법은 무엇입니까?
virtualenv
권한 문제는 당신이를 만들 때 발생할 수 있습니다 virtualenv
으로 sudo
다음없이 작동 sudo
에서 virtualenv
.
귀하의 질문의 의견에 발견으로, 여기에 솔루션입니다 만들virtualenv
없이 sudo
할 수있는 작업 (특히. 쓰기) 그것에없이 sudo
.
해결책:
virtualenv를 루트로 만든 경우 다음 명령을 실행합니다.
sudo chown -R your_username:your_username path/to/virtuaelenv/
이것은 아마도 문제를 해결할 것입니다.
건배
sudo를 사용하여 virtualenv를 만들지 않았습니다. 그래서 Sebastian의 대답은 나에게 적용되지 않았습니다. 내 프로젝트는 utils
. 나는 utils
디렉토리를 확인 하고 이것을 보았다.
-rw-r--r-- 1 macuser staff 983 6 Jan 15:17 README.md
drwxr-xr-x 6 root staff 204 6 Jan 14:36 utils.egg-info
-rw-r--r-- 1 macuser staff 31 6 Jan 15:09 requirements.txt
보시 utils.egg-info
다시피은 root
not macuser
. 그것이 나에게 permission denied
오류를 준 이유 입니다. 나는 또한 /Users/macuser/.virtualenvs/armoury/lib/python2.7/site-packages/utils.egg-link
그것이 만든대로 제거 해야했습니다 root
. 나는 pip install -e .
그것들을 제거한 후 다시 한 번 작동했습니다.
제 경우에는을 사용 mkvirtualenv
했지만 python3을 사용할 것이라고 말하지 않았습니다. 이 오류가 발생했습니다.
mkvirtualenv hug
pip3 install hug -U
....
error: could not create '/usr/lib/python3.4/site-packages': Permission denied
python3을 지정한 후에 작동했습니다.
mkvirtualenv --python=/usr/bin/python3 hug
pip3 install hug -U
당신은 가상 환경 활성화되지 않았다 주사위를 사용하기 전에합니다.
다음과 같이 시도하십시오.
$(your venv path) . bin/activate
그런 다음 기본 폴더에서 pip -r requirements.txt를 사용하십시오.
루트를 사용하여 가상 환경을 만든 경우 다음 명령을 사용하십시오.
sudo su
루트 액세스 권한을 부여한 다음이를 사용하여 가상 환경을 활성화합니다.
source /root/.env/ENV_NAME/bin/activate
sudo를 사용하면 virtualenv를 생성하는 동안 디렉토리가 루트 권한으로 생성되므로 sudo가 아닌 사용자로 패키지를 설치하려고하면 설치할 권한이 없습니다. 따라서 항상 sudo없이 virtualenv를 만들고 sudo없이 설치하십시오.
전역 파이썬에 설치된 패키지를 virtualenv로 복사 할 수도 있습니다.
cp -r /lib/python/site-packages/* virtualenv/lib/python/site-packages/
'programing tip' 카테고리의 다른 글
마스터를 Github에 Git-push 할 수 없음- 'origin'이 git 저장소로 표시되지 않음 / 권한 거부 됨 (0) | 2020.09.22 |
---|---|
문자열 값이 열거 형 목록에 있는지 확인하는 방법은 무엇입니까? (0) | 2020.09.21 |
postgresql 목록 및 크기별 주문 테이블 (0) | 2020.09.21 |
HTTP 301과 308 상태 코드의 차이점은 무엇입니까? (0) | 2020.09.21 |
NullInjectorError : AngularFirestore에 대한 공급자가 없습니다. (0) | 2020.09.21 |