J'essaie de faire Python linters pour fonctionner dans VS Code lorsque Python et tous les packages sont installés dans un conteneur Docker.
Je n'ai jamais utilisé de linters auparavant. Mais pour autant que je comprenne comment les linters fonctionnent (au moins dans VS Code), je dois pointer VS Code vers Python interprète et définir des chemins vers les packages si nécessaire. Et cela devient un problème si tout est installé dans le conteneur Docker.
J'essaie d'utiliser uniquement les fonctionnalités Docker. Ce que j'ai trouvé est le suivant:
J'ai essayé de tout implémenter en utilisant Django exemple de projet à partir des documents Docker, donc mes fichiers ressemblent à la suite
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
Le projet Django fonctionne lorsque la ligne - ./.vscode/python:/usr/local/lib/python3.7
est commenté. Mais quand j'essaye de lier le dossier mount Python de la même manière que /code
dossier monté, non seulement le contenu de ce dossier n'est pas accessible localement, mais le projet Django cesse de fonctionner.
Est-il possible de monter Python exécutable de cette manière? Ou peut-être existe-t-il une meilleure façon d'utiliser des linters arbitraires Python tout en utilisant VS Code et Docker? être génial à éviter:
Pas le côté Docker, juste quelques considérations de code VS
VS Code s'appuie sur deux mécanismes pour résoudre python highlighing: environnement et linter.
Pour l'environnement, vous pouvez vérifier https://code.visualstudio.com/docs/python/environments , qui dit essentiellement soit python est disponible sur le système dans le chemin, ou choisissez l'environnement virtuel que vous créez, ou fournissez un chemin vers l'exécutable python dans json.
https://code.visualstudio.com/docs/python/linting indique d'installer linter avec pip, exécutable à partir de l'environnement que vous avez configuré ou fournissez un chemin vers linter dans json.
Il ressemble donc aux seules choses dont vous avez besoin pour répliquer VSCode python linting est python executabe, installation de la configuration pylint et json pour vscode).