Python=そしてすべてのパッケージがDockerコンテナにインストールされているときにVSコードで動作するようにPythonリンターを作成しようとしています。
以前はリンターを使用していませんでした。しかし、リンターがどのように機能するかを理解している限り(少なくともVS Codeでは)、VS CodeをPythonインタープリターにポイントし、必要に応じてパッケージへのパスを設定する必要があります。 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
Djangoプロジェクトは、行- ./.vscode/python:/usr/local/lib/python3.7
がコメント化されている場合に機能します。しかし、マウントPythonフォルダーを/code
フォルダーと同じ方法でマウントしようとバインドすると、このフォルダーのコンテンツにローカルでアクセスできるだけでなく、Djangoプロジェクトが機能しなくなります。
Pythonこの方法で実行可能ファイルをマウントすることは可能ですか?または、VSコードとDockerを使用しているときに任意のPython lintersを使用するより良い方法がありますか?避けてください:
Docker側ではなく、VSコードに関するいくつかの考慮事項
VSコードは、python highlighing:environmentおよびlinterを解決するための2つのメカニズムに依存しています。
環境については、 https://code.visualstudio.com/docs/python/environments を確認できます。これは、基本的にpythonがパス内のシステムで利用可能である、または、作成した仮想環境を選択するか、python jsonで実行可能ファイルへのパスを指定します。
https://code.visualstudio.com/docs/python/linting は、設定した環境から実行可能なpipを使用してlinterをインストールするか、jsonでlinterへのパスを提供するように指示します。
VSCode python linting is python executabe、installation of pylint and json configuration for vscode。