在VS Code中使用Python linters和Docker

问题描述 投票:7回答:1

当Python和所有软件包安装在Docker容器中时,我正在尝试使Python链接在VS Code中工作。

我之前没有使用短绒裤。但据我所知,linters是如何工作的(至少在VS Code中),我需要将VS Code指向Python解释器,并在需要时设置路径到包。如果所有内容都安装在Docker容器中,这就成了问题。

我正在尝试仅使用Docker功能。我想出的是以下内容:

  1. 将挂载Python目录绑定到某个本地文件夹
  2. 从该文件夹中选择VS Code中的Python解释器
  3. 如果需要,以类似的方式为已安装的软件包添加目录(但我还没有达到此阶段)

我尝试使用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容器相同的环境
  • 安装不允许使用任意链接的扩展
python docker visual-studio-code lint pylint
1个回答
4
投票

不是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配置。

© www.soinside.com 2019 - 2024. All rights reserved.