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