GGAMI.NET

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 을 선택해서 재실행 시켜줘야만 된다.

다른 글