virtualenv 디렉토리에 PIP가 설치되지 않음


10

이미 존재하는 virtualenv에 django를 설치하려고합니다.

pip-install 웹 사이트 here 에 나열된 지침에 따라 SSH에서 다음을 실행했습니다.

name@server:~$ . myenv.env/bin/activate
(myenv.env)nam@server:~$ pip install django

그러나 설치 하단에 다음이 표시됩니다.

creating /usr/local/lib/python2.7/dist-packages/django

error: could not create '/usr/local/lib/python2.7/dist-packages/django': Permission denied

전역 디렉토리에 설치하려고합니다. 나는 sudo 권한이 없습니다. 내가 여기서 잘못하고 있습니까?

업데이트 : $ PATH = /var/django/myenv.env/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games


다른 패키지에서도 제대로 작동합니까? 사용하면 같은 문제가 easy_install있습니까?
larsks

다른 패키지와 동일한 문제입니다. 그리고 easy_install에는 sudo가 필요하고 전역 디렉토리에 설치한다고 생각합니다.
Luke Sapan

아니, virtualenv를 설정하면 pip뿐만 아니라 easy_install이 가능합니다. 입력 which easy_install하여 virtualenv 또는 시스템을 사용 중인지 확인할 수 있습니다 .
larsks

실제로 virtualenv 내부에서 pip를 실행하고 있습니까? which pip생산량 은 무엇입니까 ? 그리고 당신은 pip안에 보 myenv.env/bin/입니까?
larsks

myenv.env / bin / 안에 pip가 있습니다. 방금 환경을 다시 "활성화"하려고 시도했지만 해당 모드에 있음에도 불구하고 "어떤 pip"및 "어떤 easy_install"도 각각 "usr / local / bin / pip"및 "usr / bin / easy_install"을 반환합니다.
Luke Sapan

답변:


6

답변이 늦어서 죄송합니다. 나는 같은 문제를 겪었고 그것을 고쳤다. 가상 환경을 만든 후에 디렉토리 이름을 바꾸 었는지 모르겠다. 그렇다면 여기에 내가 한 일이 있습니다.

1.) deactivate당신의 v-env. 수정 후 v-env를 다시 시작해야하므로 deactivate지금도 가능합니다. 권리?

2.) 이제 다른 경로에 v-env를 만들었으므로이 파일에서 정적 경로 변수를 변경해야합니다.

핍을 작동시키기 위해 이것을 할 필요는 없지만 여전히 그렇습니다. bin/activate, bin/activate.csh, bin/activate.fish

bin/pip, bin/pip2, bin/pip2.7

bin/easy_install, bin/easy_install2.7

3.) pip가 작동하게하려면 pip 파일에서 python 인터프리터를 수정해야합니다. 여기에는 생성 프로세스에서 virtualenv에 의해 설정된 정적 인터프리터 위치가 있습니다.

4.) easy_install을 작동 시키려면? 당신은 그것을 추측하고, 통역사 위치를 수정하십시오.

앞으로 이것을 읽는 모든 사람들에게 이것이 도움이 되었기를 바랍니다. 늦어서 죄송합니다.


네, 정확히 그렇습니다. 필자의 경우 virtualenv를 처음부터 다시 만들 수 있었고 해결되었습니다.
Luke Sapan

도움
Crispy

마침내 답을 찾게되어 기쁩니다. 나를 위해 venv 폴더에서 sed를 사용하면 작업이 훨씬 쉬워졌습니다. 같은 것 grep -rli '/path/to/old/env/bin' * | xargs -i@ sed -i 's/\/path\/to\/old\/env\/bin/\/path\/to\/new\/env\/bin/g' @. 출처
Keith

"pip가 작동하게하려면 pip 파일에서 python 인터프리터를 수정해야합니다."라고 어디서 어떻게해야합니까?
데이브

3

나는이 같은 문제가 있었다.

가상 환경을 삭제하고 새 환경을 생성하여 문제를 해결했습니다.

아마 당신이 기대했던 대답은 아니지만 그것이 유일한 대답이기 때문에 ...


1

관리 권한이 없으면 수행 할 수있는 작업이 매우 제한적입니다. 자신을 높이거나 권한을 요청할 수 없다면 다른 환경을 만들고, requirements.txt 파일을 만들고, 필요한 모든 패키지를 컴퓨터 (django)에 다운로드하는 것이 가장 좋은 방법입니다. 또한 요구 사항 파일에 있으며 작동해야합니다.


0

같은 문제가 있었다. 제 경우에는 생성 된 가상 환경이 python2.7 (기본값)이지만 pip3을 사용하여 패키지를 설치했기 때문입니다. pip3이 virtualenv에 없으므로 전역으로 기본 설정되었습니다. 나를 위해 수정은 사용했다

virtualenv flask --python=python3

환경을 만들기 위해.


0

사용자 이름 변경으로 인해 동일한 문제가 발생했습니다. 크리스피의 대답은 전적으로 옳습니다. 그리고 내 솔루션이 더 편리 할 수 ​​있습니다.

setps :
1. 가상 환경의 bin 경로를 입력하십시오 (예 : cd ~/virenv_dir/bin
2). sed 명령을 사용하여이 디렉토리 아래의 모든 파일의 이름을 바꾸십시오.sed -i 's/old_name/new_name/' *


0

필자의 경우 기본 파이썬 버전의 다른 문제를 극복하기 위해 두 개의 별칭을 정의했습니다.

alias pip='/usr/bin/pip3'
alias python='/usr/bin/python3'

그리고 이것은 같은 증상을 일으켰습니다.

[Errno 13] Permission denied: '/usr/lib/python3.6/site-packages'

별칭을 제거하면 문제가 해결되었습니다 (virtuenv 생성 전 또는 후에)


0

호출 sudo pip하면 virtualenv에서 pip가 아닌 global pip를 호출합니다. 활성화 / Workon 환경 그럼 그냥 전화 pip하지 sudo pip가 내 그랬던 것처럼, 이것은 문제를 해결할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.