Pycharm 에서 python interpreter 사용하기
Python 개발을 위해 Docker를 활용한 환경 설정 과정을 공유합니다. 여러 프로젝트에서 패키지를 효율적으로 관리하는 방법을 알아보세요.
Python 개발을 위해 Docker를 활용한 환경 설정 과정을 공유합니다. 여러 프로젝트에서 패키지를 효율적으로 관리하는 방법을 알아보세요.
목차
Ai를 공부하면서 python 을 사용하고 있는데 여기서 Pycharm 으로 해보고 있다.
근데 에디터에서의 문제가 있는데,
Nodejs의 경우 node_modules 이 있기 때문에 Interpreter 가 잘 연결되지만.
Python 은 생각보다 버전이 다르게 사용될 수 있다는 것. 2.7, 3.1
그리고 이 버전들마다 설치되는 패키지 버전들도 모두 다르다는 거다...
그래서 대부분의 개발자들이 pyenv를 설치해서 사용하게 된다.
근데 어찌되었든 나는 pyenv를 설치해서 복잡하게하는 것 보다는
Docker를 통해서 개발하고 싶어서 검색해보니
Python Interpreter 라는 것이 있었고 설치 과정을 공유 한다.
app
- test.py
docker
- python
- Dockerfile (1)
- .env => `COMPOSE_PROJECT_NAME=cat-study`
- docker-compose.yml (2)
- docker-compose-interpreter.yml (3)으로 구성되어있다.
FROM python:3.10-slim AS base
WORKDIR /app
FROM base AS dev
ENV PYTHONUNBUFFERED=1
CMD ["tail", "-f", "/dev/null"]
FROM base AS interpreter
ENTRYPOINT ["python"]services:
python:
image: python
build:
context: python/
dockerfile: Dockerfile
target: dev
environment:
- ENV=local
labels:
- "traefik.enable=false"
volumes:
- ../app:/app:delegated
- python-packages:/usr/local/lib/python3.10/site-packages
networks:
frontend:
backend:
volumes:
python-packages:
name: python-packages-cat-study
networks:
frontend:
external: true
backend:
external: trueservices:
python-interpreter:
extends:
file: docker-compose.yml
service: python
image: python-interpreter
build:
target: interpreter
volumes:
python-packages:
name: python-packages-cat-study
external: true
networks:
frontend:
external: true
backend:
external: truedockerFile에 target 을 사용해서, dev 용, interpreter 용으로 분리 했다.
volumes Name 에 python-packages-cat-study 를 설정해서, 각 프로젝트 별로 interpreter 가 바라보는 python package Folder 를 분리시켰다.
dev, interpreter 용의 volume 이 같은 곳을 바라보기 때문에 dev에서 pip install 해도 패키지가 공유된다.
사실 docker-compose.yml 을 interpreter 로 분리시키지 않고, 하나의 dev용 docker container 에서 처리하고 싶었는데, 이렇게 하려면 SSH를 설치해서 처리해야된다고 한다.
(ENTRYPOINT ["python"]) 그리고 여기 부분 때문에 어려워 보이기도 함.
그렇게하면 혹시나 여러 python 프로젝트를 작업 진행할때에 사실 불편할 것 같기도 하고...
아닌가...?? 그게 더 편하려나...??
한번 시도는 해봐야겠다..
시도는 해봤는데, SSH라서 외부 포트도 열어줘야하고 생각보다 귀찮은 부분이 많다. 그리고 기존 내용을 아예 수정했는데
docker-compose-interpreter.yml 를 같은 docker 폴더로 합치게 되었다.


패키지 설치 후 패키지 Sync 하려면 Reload All Repositories 를 실행시켜주고
꼭 Python Interpreter 에서 한번 더 해당 Remote Python 을 선택해서 재실행 시켜줘야만 된다.