在 PyCharm 中使用 Python Interpreter
我在学习 AI 的过程中一直在使用 Python, 并且在这里尝试用 PyCharm 进行开发。 不过编辑器方面遇到了一个问题: Node.js 有 node modules,因此 Interpreter 可以很好地连接。 但 Python 使用的版本可能比想象中更加多样。 2.7、3.1 而且这些版本各自安装的包版本
我在学习 AI 的过程中一直在使用 Python, 并且在这里尝试用 PyCharm 进行开发。 不过编辑器方面遇到了一个问题: Node.js 有 node modules,因此 Interpreter 可以很好地连接。 但 Python 使用的版本可能比想象中更加多样。 2.7、3.1 而且这些版本各自安装的包版本
目录
我在学习 AI 的过程中一直在使用 Python, 并且在这里尝试用 PyCharm 进行开发。
不过编辑器方面遇到了一个问题:
Node.js 有 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: true在 Dockerfile 中使用 target,将其分为 dev 和 interpreter 两种用途。
在 volumes Name 中设置 python-packages-cat-study,这样就能为每个项目分别设置 interpreter 所指向的 Python 包目录。
由于 dev 和 interpreter 使用的 volume 指向同一个位置,所以即使在 dev 中执行 pip install,包也会共享。
其实我原本想不把 docker-compose.yml 拆分出来用于 interpreter,而是在一个用于 dev 的 Docker 容器中处理,但听说这样做需要安装 SSH 才能实现。
(ENTRYPOINT ["python"])而且因为这里的这一部分,看起来也挺麻烦。
这样的话,如果同时进行多个 Python 项目的开发,感觉可能会不太方便……
是吗……??那样反而会更方便吗……??
得试试看……
试过了,不过因为需要 SSH,还得开放外部端口,麻烦的地方比想象中多。 而且我把原来的内容整个修改了,
最后把 docker-compose-interpreter.yml 合并到了同一个 docker 文件夹中。


安装包之后,要同步包的话,运行 Reload All Repositories,
还必须在 Python Interpreter 中再次选择对应的 Remote Python 并重新运行。