使用Docker设置python开发环境(在vscode中实现linting和代码完成)

时间:2019-03-22 11:26:18

标签: python docker visual-studio-code

设置

我正在探索在docker容器内设置python开发环境的方法。

在我的本地(主机)中,我有项目目录:

.
├── Dockerfile
└── foo.py

我的Dockerfile在哪里:

FROM python:latest

RUN pip install --upgrade pip
RUN pip install matplotlib

RUN mkdir /src
WORKDIR /src

ENTRYPOINT [ "python" ]

,脚本为:

try:
    import matplotlib
    print("import successfully")
except ImportError:
    print("unable to import matplotlib")

假设我的主机上未安装matplotlib,则python foo.py会产生unable to import matplotlib。当我在容器中运行时:

docker run -it --rm -v ~/tmp/:/src/ py-deb-test foo.py

我得到import successfully

问题

现在,我的意图是在本地主机上使用vscode处理我的代码,然后在容器中运行它。问题是在这种设置下,我不知道如何将vscode指向容器中运行的python“安装”。我想到了启动容器并将python从容器“装载”到本地位置,并将vscode指向此位置的方法。但是到目前为止,它不起作用。

在没有解决此问题的情况下,vscode无法知道安装了哪些软件包,在哪里可以找到棉短绒等……

任何帮助和想法都将受到欢迎!

3 个答案:

答案 0 :(得分:1)

目前对此情况没有任何官方支持,但是您可以按照issue tracking remote interpreter support来了解我们何时有解决方案。

答案 1 :(得分:0)

好消息。 VScode的人们最近发布了似乎正是我想要的东西。现在,使用containers remote VScode可以在具有确切环境的容器上运行编辑器。在this repo中,我汇编了一个最小的示例,希望您会发现它有用。

答案 2 :(得分:0)

如果这仍然对某人有趣:

我已经用Python,R和Latex设置了一个Docker容器,并为这些语言完成了代码完成,插入和编译。还提供了一个VS-code devcontainer文件,该文件将设置设置为合理的默认值(尤其是路径变量,以便devcontainer在运行时可以找到可执行文件)。

您可以找到它here