programing tip

virtualenv와 함께 pip를 사용할 때 "Permission denied"를 방지하는 방법

itbloger 2020. 9. 21. 07:27
반응형

virtualenv와 함께 pip를 사용할 때 "Permission denied"를 방지하는 방법


pipUbuntu 머신의 가상 환경에서 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다시피은 rootnot 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/

참고 URL : https://stackoverflow.com/questions/19471972/how-to-avoid-permission-denied-when-using-pip-with-virtualenv

반응형