Я получаю приглашение с:
Invalid Message: "pythonPath" is not valid if "python" is specified
и возможность открыть launch.json. Но мой launch.json не содержит ничего, что говорит «pythonPath»:
{
"configurations": [
{
"name": "Docker: Python - General",
"type": "docker",
"request": "launch",
"preLaunchTask": "docker-run: debug",
"python": {
"pathMappings": [
{
"localRoot": "${workspaceFolder}",
"remoteRoot": "/app"
}
],
"projectType": "general"
}
}
]
}
и это мои задачи.json:
{
"version": "2.0.0",
"tasks": [
{
"type": "docker-build",
"label": "docker-build",
"platform": "python",
"dockerBuild": {
"tag": "cachepurger:latest",
"dockerfile": "${workspaceFolder}/Dockerfile",
"context": "${workspaceFolder}",
"pull": true
}
},
{
"type": "docker-run",
"label": "docker-run: debug",
"dependsOn": ["docker-build"],
"python": {
"file": "src/main.py"
}
}
]
}
и Dockerfile:
# For more information, please refer to https://aka.ms/vscode-docker-python
FROM python:3.9.6-slim
# Keeps Python from generating .pyc files in the container
ENV PYTHONDONTWRITEBYTECODE=1
# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED=1
# Install pip requirements
COPY requirements.txt .
RUN python -m pip install -r requirements.txt
WORKDIR /app
COPY . /app
# Creates a non-root user with an explicit UID and adds permission to access the /app folder
# For more info, please refer to https://aka.ms/vscode-docker-python-configure-containers
RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
USER appuser
# During debugging, this entry point will be overridden. For more information, please refer to https://aka.ms/vscode-docker-python-debug
CMD ["python", "src/main.py"]
все создано с помощью команды «Docker: добавить файлы Dockerfiles в рабочую область ...» -> «Python: General». Раньше работало, а сейчас перестало. Я пытался использовать образ Python 3.9.6, так как это образ из моего .venv, но безуспешно. Образ собирается без ошибок, а запуск докера работает нормально. В тот момент, когда он пытается «прикрепить», я получаю это сообщение.
Это вывод терминала:
* Executing task: docker-build
> docker image build --pull --file '/Users/philipp/Sites/cache-purger/Dockerfile' --tag 'cachepurger:latest' --label 'com.microsoft.created-by=visual-studio-code' '/Users/philipp/Sites/cache-purger' <
#1 [internal] load build definition from Dockerfile
#1 sha256:c141506ce29f9a418e9f7aa174d1f48de1cda1b771a6710f311fe64b6591e190
#1 transferring dockerfile: 37B done#1 DONE 0.0s
#2 [internal] load .dockerignore
#2 sha256:7b7281b332cffe701548a5bd1f2ad8aa5ef2ad5c7b67d8432ca152c58ad529f9
#2 transferring context: 120B done
#2 DONE 0.0s
#3 [internal] load metadata for docker.io/library/python:3.9.6-slim
#3 sha256:fc1a7a5428ef0e03d295fd81aa9c55606d4e031ac5c881a3941276f70f00d422#3 DONE 0.6s
#4 [1/6] FROM docker.io/library/python:3.9.6-slim@sha256:4115592fd02679fb3d9e8c513cae33ad3fdd64747b64d32b504419d7118bcd7c
#4 sha256:e45c2d35d6435658167a7e046bb6121c498edab8c8777f3cd5a56f585eead583
#4 DONE 0.0s
#5 [internal] load build context
#5 sha256:c20427bc601f92346d0d4519c594683dbcd8b4a64b1ca4f59a16ce42d0f217db#5 transferring context: 176.69kB 0.2s done
#5 DONE 0.2s
#8 [4/6] WORKDIR /app
#8 sha256:cd260eca990853ac7a3228b8435b728cf978b08e035684cf2988a4ce596004e6
#8 CACHED
#9 [5/6] COPY . /app
#9 sha256:8261e563e3b0b0cd32854e76a77543449ceca6f5b3fe76de9cd0a1ea8fae3fab
#9 CACHED
#6 [2/6] COPY requirements.txt .
#6 sha256:3d3741721306ef2859b965575ba3fe04d426fb55b1d22dde909fde88f9be8998
#6 CACHED
#7 [3/6] RUN python -m pip install -r requirements.txt
#7 sha256:92a4bcf37798995b7fcd368e190a189642affda38a1ecc4f004f0827567520e6
#7 CACHED
#10 [6/6] RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
#10 sha256:b0b00f3b01ee74a6a813c94699340d78511ccdb89b4b326fd106625803062cb1
#10 CACHED
#11 exporting to image
#11 sha256:e8c613e07b0b7ff33893b694f7759a10d42e180f2b4dc349fb57dc6b71dcab00
#11 exporting layers done
#11 writing image sha256:1a8bf7fd9f7f83ddc25d421eef1c4fb986ef79cdc9bb9709d10ed530c2b4c6c0 done
#11 naming to docker.io/library/cachepurger:latest done
#11 DONE 0.0s * Terminal will be reused by tasks, press any key to close it.
* Executing task: docker-run: debug
> docker container run --detach --tty --name 'cachepurger-dev' --publish-all --mount 'type=bind,source=/Users/philipp/.vscode/extensions/ms-python.python-2023.2.0/pythonFiles/lib/python/debugpy,destination=/debugpy,readonly' --label 'com.microsoft.created-by=visual-studio-code' --entrypoint 'python3' cachepurger:latest <
8baa3597aa97f39641a43f6886b884e139165f83edaca9ae1f99e9f8a760e50e * Terminal will be reused by tasks, press any key to close it.
Ваш код в порядке. Это расширение VSCode/Python, которое было обновлено до версий 1.75 и 2023.02 соответственно, и, следовательно, эта ошибка является новой. Пожалуйста, обратитесь к этому выпуску для постоянного развития ошибки. На данный момент удалите VSCode и переустановите 1.74, а также переустановите расширение python до версии 2023.02, и все будет готово.
Подтвердил, что это работает. Для любых пользователей Debian или производных пользователей вы можете переустановить старый VSCode, выполнив: sudo apt install code=1.74.3-1673284829 (вам не нужно удалять)
Как говорит @ridhwan-saal, код в порядке. Это ошибка последней версии VSCode/Python. Я последовал его совету, и это сработало.