Как исправить ошибку «python: not found» при использовании PostCreateCommand в расширении удаленного докера vscode - PullRequest
0 голосов
/ 25 июня 2019

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

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

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 следующие значения, которые все выдают одинаковую ошибку «not found»:

pip - версия Конда - Версия

Когда контейнер запущен, я успешно могу использовать 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, установленную в любой активной среде анаконды.

1 Ответ

0 голосов
/ 25 июня 2019

вы пытаетесь запустить python при установленном python3

попробовать запустить

python3 --version
...