PyCharm 在 Docker 中添加远程 Python 解释器

Posted

技术标签:

【中文标题】PyCharm 在 Docker 中添加远程 Python 解释器【英文标题】:PyCharm add remote Python interpreter inside the Docker 【发布时间】:2015-09-01 21:59:43 【问题描述】:

所以我在我的笔记本电脑上设置了一个 docker。我正在使用 Boot2Docker,所以我有一个间接级别来访问 docker。在 PyCharm 中,我可以通过 SSH 设置远程 python 解释器,但我不确定如何为只能通过 Boot2Docker 访问的 docker 执行此操作?

【问题讨论】:

一个远程python解释器一个正在运行的容器? 因此您的容器将必须运行 SSH 并暴露给 boot2docker/virtualbox 主机,然后您通过 PyCharm 连接到 boot2docker/virtualbox 主机的暴露 ssh 端口以连接到你的远程 Python 解释器。 谢谢。我会研究一下如何转发SSH。 @JamesMills,非常感谢。您为什么不将其发布为答案?如果我将容器作为守护进程运行并运行网络服务器会怎样?我可以附加到正在运行的容器而不是 run 因为我已经运行它了吗? @JamesMills 获得了两次反对票和一次接近投票,没有评论他们为什么这么认为。怪人无处不在。 【参考方案1】:

好的,回答你的问题:

在 PyCharm 中,我可以通过 SSH 设置远程 python 解释器,但我不确定如何为只能通过 Boot2Docker 访问的 docker 设置?

你需要:

确保您的容器中运行 SSH

有许多包含 SSH 的基本映像。见:Dockerizing an SSH Daemon

向 Boot2Docker/VirtualBox VM 公开 SSH 服务。

docker run -d -p 2222:22 myimage ...

设置 PyCharm 以连接到您的 Boot2Docker/VirtualBox 虚拟机。

boot2docker ip


附加到正在运行的容器也很容易!

$ boot2docker ssh
$ docker exec -i -t <cid> /bin/bash

&lt;cid&gt; 是容器 ID 或名称(如果您使用了 --name

【讨论】:

已安装 sshd 并通过 supervisord 运行服务,现在我可以连接到解释器了。谢谢詹姆斯。 您是否设法使用远程解释器调试了 python 类?我可以在运行类时连接到解释器,但是在尝试调试时尝试打开其他端口失败。 什么是失败消息以及它试图打开哪些端口? (我对 PyCharm 一无所知,我实际上并没有使用它)。

以上是关于PyCharm 在 Docker 中添加远程 Python 解释器的主要内容,如果未能解决你的问题,请参考以下文章

Pycharm调试docker compose中的manage.py命令

Pycharm 2017.1 EAP Python控制台和远程Docker解释器无法协同工作

在远程服务器上的 docker 容器中设置本地 PyCharm 远程解释器

PyCharm 远程连接linux中Python 运行pyspark

是否可以在 PyCharm CE 中使用 Docker?

Pycharm 使用 Docker Container Python 作为远程解释器