[리눅스/윈도] 파이썬 웹 : venv 안에서 flask 설치하기

2024. 6. 7. 22:12리눅스 실제 사용 팁/WSL

윈도에서 파이썬 웹 개발을 공부하려고 모 유튜브 영상을 따라가보았다.

 

커맨드 쉘에서 py 파일을 편집하려고 했는데 예전 DOS 에서 썼던 copy con 명령이 안통했다.

이것에 대한 원조격인 유닉스 쉘 명령은 다음과 같다 :

cat > file.py

 

파일의 내용을 모두 입력한 후 ENTER 키 입력 후 Ctrl D 키조합으로 EOF 를 입력하면 파일에 저장되는 방식이다.

 

DOS 에서 vi 와 유사하게 edlin 이라는 행편집기 뿐만 아니라 edit 명령어로 실행하는 텍스트 GUI 편집기도 있었건만 지금의 윈도10 이상 운영체계의 커맨드 쉘에서는 지원하지 않는다. 그래서 결국 내가 지향하는 WSL 안의 데비안에서 실행하기로 했다.

 

리눅스 배포판에서 기본적으로 파이썬 v3.x 가 설치되어 있는데 WSL 에는 기본 설치가 아니기 때문에 직접 설치해주어야 한다.

 

sudo apt install python3

또는

sudo apt install python3.11

을 실행한다. (데비안의 패키지 관리 방식에 따라 pythpon3-minimal 이라는 메타패키지가 설치된다)

 

venv 를 실행하기 위해서 데비안에서 python3.11-venv 도 별도로 설치해야 한다.

sudo apt install python3.11-venv

 

 

venv 를 실행할 수 있는 개발환경 구축은 여기까지이다.

 

venv 로 가상환경 만들고 flask 설치하기

 

작업경로 : /home/user01/src/myPyProject/

venv 로 생성할 디렉토리명 : test

 

cd /home/user01/MyPyProject
python -m venv test
---
(실행결과) test 라는 디렉토리가 생성된다.

 

`find test -maxdepth 3` 명령을 실행하면 아래와 같은 구조로 파일이 생성된다.

test
test/bin
test/bin/activate
test/bin/activate.fish
test/bin/python3
test/bin/python
test/bin/pip3.11
test/bin/Activate.ps1
test/bin/pip
test/bin/python3.11
test/bin/pip3
test/bin/activate.csh
test/lib
test/lib/python3.11
test/lib/python3.11/site-packages
test/lib64
test/include
test/include/python3.11
test/pyvenv.cfg

 

여기서 중요한 것은 bin/activate 파일이다. 쉘 파일이겠거니 싶어서 sh 로 실행하면 가상환경으로 진입되지 않는다.

source 또는 축약형 명령인 "." 을 활용해야 한다.

(윈도 커맨드쉘 버전에서는 bin 대신 Script 디렉토리가 생김)

 

cd test
source bin/activate

 

PS1 경로 표시 앞에 가상환경 아래의 경로인 (test) 가 붙는다.

activate 를 적용하기 전: /home/user01/src/myPyProject
activate 를 적용한 후: (test) /home/user01/src/myPyProject/

 

pip install flask
---
(find 실행결과)
lib/python3.11/site-packages 밑에 flask 가 설치되어 있음을 확인할 수 있다.

lib/python3.11/site-packages/flask
lib/python3.11/site-packages/flask/py.typed
lib/python3.11/site-packages/flask/__pycache__
lib/python3.11/site-packages/flask/__pycache__/app.cpython-311.pyc
lib/python3.11/site-packages/flask/__pycache__/testing.cpython-311.pyc
lib/python3.11/site-packages/flask/__pycache__/cli.cpython-311.pyc
lib/python3.11/site-packages/flask/__pycache__/wrappers.cpython-311.pyc
lib/python3.11/site-packages/flask/__pycache__/sessions.cpython-311.pyc
lib/python3.11/site-packages/flask/__pycache__/blueprints.cpython-311.pyc
lib/python3.11/site-packages/flask/__pycache__/logging.cpython-311.pyc
lib/python3.11/site-packages/flask/__pycache__/config.cpython-311.pyc
lib/python3.11/site-packages/flask/__pycache__/helpers.cpython-311.pyc
lib/python3.11/site-packages/flask/__pycache__/typing.cpython-311.pyc
lib/python3.11/site-packages/flask/__pycache__/signals.cpython-311.pyc
lib/python3.11/site-packages/flask/__pycache__/globals.cpython-311.pyc
lib/python3.11/site-packages/flask/__pycache__/__init__.cpython-311.pyc
lib/python3.11/site-packages/flask/__pycache__/templating.cpython-311.pyc
lib/python3.11/site-packages/flask/__pycache__/ctx.cpython-311.pyc
lib/python3.11/site-packages/flask/__pycache__/__main__.cpython-311.pyc
lib/python3.11/site-packages/flask/__pycache__/debughelpers.cpython-311.pyc
lib/python3.11/site-packages/flask/__pycache__/views.cpython-311.pyc
lib/python3.11/site-packages/flask/globals.py
lib/python3.11/site-packages/flask/ctx.py
lib/python3.11/site-packages/flask/__main__.py  
lib/python3.11/site-packages/flask/helpers.py
lib/python3.11/site-packages/flask/sessions.py
lib/python3.11/site-packages/flask/config.py    
lib/python3.11/site-packages/flask/logging.py
lib/python3.11/site-packages/flask/wrappers.py
lib/python3.11/site-packages/flask/json
.
.
.

pip install flask 실행 시 출력되는 메시지