Как исправить ошибку python: not found при использовании PostCreateCommand в расширении удаленного докера vscode

Я использую расширение Visual Studio Code Remote - Containers с настроенным DockerFile. Он основан на https://github.com/microsoft/vscode-dev-containers/blob/master/containers/python-3/.devcontainer/Dockerfile, но использует другой базовый образ и не пытается выполнить установку по конвейеру из файла requirements.txt.

Когда я создаю контейнер в vscode, когда для PostCreateCommand установлено значение «python --version», в выводе терминала контейнеров разработчика появляются следующие ошибки:

Run: docker exec -w /workspaces/media-classifier dd5e552b4f113ecf74504cc6d3aed3ca1727b4a172645515392c4632b7c45b81 /bin/sh -c python --version
/bin/sh: 1: python: not found
postCreateCommand "python --version" failed.

Я пробовал использовать то же значение параметра для PostCreateCommand (python --version), используя как стандартный контейнер python3, так и контейнер anaconda python3, и оба они успешно выводят версию python.

Я также попытался установить PostCreateCommand на следующие значения, которые все вызывают одну и ту же ошибку «не найден»:

pip --version conda --version

Когда контейнер запущен, я могу успешно использовать python, pip и conda, поэтому они определенно установлены.

Dockerfile

FROM microsoft/cntk:2.6-cpu-python3.5

# Configure apt and install packages
RUN apt-get update \
    && apt-get -y install --no-install-recommends apt-utils 2>&1 \
    #
    # Verify git, process tools, lsb-release (common in install instructions for CLIs) installed
    && apt-get -y install git procps lsb-release \
    # Clean up
    && apt-get autoremove -y \
    && apt-get clean -y \
    && rm -rf /var/lib/apt/lists/*

devcontainer.json

{
    "name": "CNTK Python3.5",
    "context": "..",
    "dockerFile": "Dockerfile",

    // Uncomment the next line if you want to publish any ports.
    // "appPort": [],

    // Uncomment the next line to run commands after the container is created.
    "postCreateCommand": "python --version",

    "extensions": [
        "ms-python.python",
        "neuron.neuron-ipe"
    ],
    "settings": {
        "python.pythonPath": "/opt/conda/bin/python",
        "python.linting.pylintEnabled": true,
        "python.linting.enabled": true
    }
}

Я ожидаю, что PostCreateCommand выполнится успешно и выведет версию python, установленную в той среде, которая активна в данный момент.


person Allan Wright    schedule 25.06.2019    source источник


Ответы (1)


вы пытаетесь запустить python, когда python3 установлен

попробуйте бежать

python3 --version
person gCoh    schedule 25.06.2019