我正在探索在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无法知道安装了哪些软件包,在哪里可以找到棉短绒等……
任何帮助和想法都将受到欢迎!
答案 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。