2013-10-19 2 views
55

우분투 컴퓨터의 가상 환경에 pip과 함께 Python 패키지를 배포하려고했지만 권한 관련 문제가 발생했습니다. 예를 들어 :virtualenv와 함께 pip를 사용할 때 "Permission denied"를 피하는 방법

(TestVirtualEnv)[email protected]:~$ pip install markdown2 

는 종료로 :

error: could not create '/home/test/virtualenvs/TestVirtualEnv/lib/python3.3/site-packages/markdown2.py': Permission denied

나는 그것이 세계적으로 패키지를 설치하기 때문에,하지 sudo 수, 그리고 가상 환경 내에서. I chown ed site-packages; lseasy_install, pipsetuptools과 관련된 디렉토리 만 표시하며 Markdown과 관련이 없습니다.

권한 관련 오류가 발생하지 않고 pip으로 가상 환경에 패키지를 배포하는 방법은 무엇입니까? 당신이 sudovirtualenv을 만든 다음 virtualenvsudo없이 작동 할 때

+0

분명히하기 위해 : 당신은'sudo'로이 virtualenv를 만들었습니까? –

+0

@sebastian_oe : 나는 믿는다. 나는 확실히 그것을 재현 할 것이다. –

+2

그러면 문제 일 수 있습니다. 'sudo'없이 virtualenv를 만들어보십시오. –

답변

67

virtualenv 권한 문제가 발생할 수 있습니다.

으로 질문의 의견에 발견, 여기에 솔루션은 (특히. 쓰기) 거기에 sudo없이 작업을 할 수 sudo없이virtualenv을 만드는 것입니다.

+2

sudo가 필요한/opt에 생성하려면 virtualenv가 sudo없이 설치되지 않을 것입니다. – Neutralizer

+3

@sebastian_oe 내가 당신을 사랑한다고 생각한다. – AndrewK

+3

sudo없이'virtualenv'를 만드는 방법은? – Tunn

3

sudo를 사용하여 virtualenv를 만들지 않았습니다. 그래서 세바스찬의 대답은 제게 적용되지 않았습니다. 내 프로젝트는 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-inforoot하지 macuser에 의해 소유된다. 그래서 permission denied 오류가 발생했습니다. root도 마찬가지로 /Users/macuser/.virtualenvs/armoury/lib/python2.7/site-packages/utils.egg-link을 삭제해야했습니다. 나는 그들을 제거한 후에 pip install -e .을 다시했는데 효과가 있었다.

56

솔루션 :

sudo chown -R your_username:your_username path/to/virtuaelenv/ 

이 아마 당신의 문제가 해결됩니다 : 당신이 루트로 VIRTUALENV을 만든 경우

다음 명령을 실행합니다.

건배 내 경우

+0

이것은 나를 위해 일했습니다. (chown /usr/local/lib/python3.4) root로 virtualenv를 만들었는데 실제로 Python3.4를 root로 설치했습니다. 아직 테스트 중이지만이 솔루션으로 더 이상 문제가 발생할 것이라고 생각합니까 아니면이 오류가 대부분의 오류를 해결할 것입니까? – ntk4

+0

virtualenv 또는 python을 루트로 생성했는지 어떻게 알 수 있습니까? –

2

, 나는 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 
0

당신 이 핍을 사용하기 전에 가상 환경을 활성화하지 않았다 나는이 오류가 발생했습니다.

으로 시도 :

$(your venv path) . bin/activate 

을 그리고 당신은 디렉토리가 루트 privileges.So 만들어집니다 sudo를 사용하는 경우 다음 VIRTUALENV 만드는 동안 메인 폴더

0

에 핍 -r requirements.txt를 사용할 때를 sudo가 아닌 사용자와 함께 패키지를 설치하려고하면 설치할 수있는 권한이 없습니다. 그래서 항상 sudo없이 virtualenv를 만들고 sudo없이 설치하십시오.

글로벌 파이썬에 설치된 패키지를 virtualenv로 복사 할 수도 있습니다.

cp -r /lib/python/site-packages/* virtualenv/lib/python/site-packages/ 
+0

이것은 문제가되지 않았습니다. 주석을 읽으면, OP는 처음에는 sudo로 가상 env를 만들었습니다. – Nick

관련 문제