当Python和所有软件包都安装在Docker容器中时,我正在尝试使Python linter在VS Code中工作。
我以前没有用过短绒。但是据我所知,短绒如何工作(至少在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
文件夹相同的方式绑定安装Python文件夹时,我不仅没有本地可访问此文件夹的内容,而且Django项目停止工作。
是否可以通过这种方式挂载Python可执行文件?也许有更好的方法在使用VS Code和Docker时使用任意的Python linter?最好避免:
答案 0 :(得分:3)
不是Docker方面,只是一些VS代码注意事项
VS Code依赖于两种解决python highlighing的机制:环境和短绒。
对于环境,您可以检查https://code.visualstudio.com/docs/python/environments,它基本上表示python在路径中的系统上可用,或者选择您创建的虚拟环境,或者在json中提供python可执行文件的路径。
https://code.visualstudio.com/docs/python/linting告诉您使用pip安装linter,该pip可从您配置的环境中运行,或者在json中提供linter的路径。
因此,看起来复制VSCode python linting所需的唯一内容是python executabe,安装pylint和vscode的json配置。