virtualenv 환경에서 pip 패키지 설치 문제

virtualenv 환경에서 pip 패키지 설치 문제

Python 가상 환경을 생성 virtualenv -p python3 venv하고 활성화한 후 source venv/bin/activatepip 명령->을 사용하여 Python 패키지를 설치하려고 하면 pip install Flask권한 오류가 발생합니다.

Could not install packages due to an EnvironmentError: [Errno 13] 
Permission denied: '/var/www/flask/apnisi/venv/lib/python3.5/site-packages/werkzeug'

pip 명령에 sudo를 추가하면 설치가 완료되지만 패키지를 설치할 sudo pip install Flaskpip list새로 설치된 패키지가 표시되지 않습니다. 무엇이 문제일까요?

답변1

게시한 내용이 정확하더라도 환경을 올바르게 "가져오는" 것 같지 않기 때문에 문제가 발생할 수 있습니다. 또한 python2와 python3이 모두 있는 경우 호환성 문제를 방지하기 위해 사용 중인 Python 버전을 지정하는 것이 좋습니다. 그렇지 않은 경우 질문을 수정해 주시면 답변이 삭제되거나 차례로 수정될 수 있습니다.

Python 3 가상 환경을 만드는 기본 사항은 다음과 같습니다.

python3 -m venv /path/to/virtual/env
source ./path/to/virtual/env/bin/activate

venv먼저 설치 해야 할 수 있으며 ( apt install python3-venv) 경로와 가상 환경 자체는 사용자가 쓰기 권한을 가지고 있는 위치여야 합니다. 이 시점에서는 가상 환경( )에 있어야 합니다 (env) user@host:~$ _.

전역/시스템 전체에 걸쳐 패키지를 설치하려면 sudowith 를 사용할 pip필요 가 없습니다 . 이는 개발 및 테스트를 위해 Python 환경을 격리하는 가상 환경의 목적을 거의 무너뜨립니다. 인용하다sudopip공식적인Python 및 문제가 있는 패키지 문서가 올바르게 설치되지 않은 경우 sudo가상 환경에서 종속성 또는 기타 구성이 누락되었음을 의미할 수 있습니다.

Debian 9.8 시스템(Linux 4.9.0-8-amd64)에서 위 단계를 실행한 후 다음 명령을 실행하여 다음 결과를 얻습니다.

(env) user@host:~$ pip3 install flask
(env) user@host:~$ pip3 list --format=legacy
Click (7.0)
Flask (1.0.2)
itsdangerous (1.1.0)
Jinja2 (2.10)
MarkupSafe (1.1.1)
pip (9.0.1)
pkg-resources (0.0.0)
setuptools (32.3.1)
Wekzeug (0.15.1)
(env) user@host:~$ python3 --version
Python 3.5.3

관련 정보