当Python和所有软件包安装在Docker容器中时,我正在尝试使Python链接在VS Code中工作。
我之前没有使用短绒裤。但据我所知,linters是如何工作的(至少在VS Code中),我需要将VS Code指向Python解释器,并在需要时设置路径到包。如果所有内容都安装在Docker容器中,这就成了问题。
我正在尝试仅使用Docker功能。我想出的是以下内容:
我尝试使用Docker文档中的Django示例项目来实现所有内容,因此我的文件如下所示
docker-compose.yml
version: '3'
services:
db:
image: postgres
web:
build: .
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
- ./.vscode/python:/usr/local/lib/python3.7 # The problem is here
ports:
- "8000:8000"
depends_on:
- db
Dockerfile
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
requirements.txt
Django
psycopg2
当- ./.vscode/python:/usr/local/lib/python3.7
行被评论时,Django项目工作。但是当我尝试以挂载/code
文件夹的方式绑定mount Python文件夹时,我不仅没有本地访问此文件夹的内容,而且Django项目停止工作。
是否可以以这种方式挂载Python可执行文件?或者在使用VS Code和Docker时可能有更好的方法来使用任意Python链接?避免这样做会很棒:
不是Docker方面,只是一些VS代码考虑因素
VS Code依赖于两种解析python highlighing的机制:环境和linter。
对于环境,您可以检查https://code.visualstudio.com/docs/python/environments,它基本上表示python可以在路径中的系统上使用,或者选择您创建的虚拟环境,或者在json中提供python可执行文件的路径。
https://code.visualstudio.com/docs/python/linting告诉你用pip安装linter,从你配置的环境运行,或者在json中提供linter的路径。
所以它看起来你需要复制的唯一的东西VSCode python linting是python executabe,为vscode安装pylint和json配置。