pip
Ubuntu 머신의 가상 환경에서 Python 패키지를 배포하려고 하는데 권한 관련 문제가 발생합니다. 예를 들면 :
(TestVirtualEnv)test@testServer:~$ pip install markdown2
종료 :
오류 : ‘/home/test/virtualenvs/TestVirtualEnv/lib/python3.3/site-packages/markdown2.py’를 만들 수 없습니다 : 권한이 거부되었습니다.
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/
이것은 아마도 문제를 해결할 것입니다.
건배
답변
제 경우에는을 사용 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
답변
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 .
그것들을 제거한 후 다시 한 번 작동했습니다.
답변
루트를 사용하여 가상 환경을 만든 경우 다음 명령을 사용하십시오.
sudo su
루트 액세스 권한을 부여한 다음이를 사용하여 가상 환경을 활성화합니다.
source /root/.env/ENV_NAME/bin/activate
답변
당신은 가상 환경 활성화되지 않았다 주사위를 사용하기 전에합니다.
다음과 같이 시도하십시오.
$(your venv path) . bin/activate
그런 다음 기본 폴더에서 pip -r requirements.txt를 사용하십시오.
답변
나는 또한 기존 가상 환경에서 새로운 Venv를 만든 후에 (우연히) 이런 일이 발생했습니다. 이것을 진단하는 쉬운 방법 python
은 심볼릭 링크 된 위치를 확인하는 것 입니다.
ls -l venv/bin/python
적절한 Python 바이너리를 가리키는 지 확인하십시오. 대부분의 시스템에서 이것은 /usr/bin/python
또는 /usr/bin/python3
입니다. 기존 가상 환경을 가리키는 경우 /home/youruser/somedir/bin/python
. 후자 인 경우 기존 virtualenv (예 : run deactivate
)가 “내부”가 아닌지 확인하면서 venv를 다시 만드는 것이 좋습니다.