Pycharm 에서 python interpreter 사용하기
Updated on
목차
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)으로 구성되어있다.
(1) docker > python > Dockerfile#
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"](2) docker > docker-compose.yml#
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: true(3) docker > docker-compose-interpreter.yml#
services:
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: true설명#
dockerFile에 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 을 선택해서 재실행 시켜줘야만 된다.