Python 가상 환경을 생성 virtualenv -p python3 venv
하고 활성화한 후 source venv/bin/activate
pip 명령->을 사용하여 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 Flask
때 pip 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:~$ _
.
전역/시스템 전체에 걸쳐 패키지를 설치하려면 sudo
with 를 사용할 pip
필요 가 없습니다 . 이는 개발 및 테스트를 위해 Python 환경을 격리하는 가상 환경의 목적을 거의 무너뜨립니다. 인용하다sudo
pip
공식적인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