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
<cid>
是容器 ID 或名称(如果您使用了 --name
。
【讨论】:
已安装sshd
并通过 supervisord
运行服务,现在我可以连接到解释器了。谢谢詹姆斯。
您是否设法使用远程解释器调试了 python 类?我可以在运行类时连接到解释器,但是在尝试调试时尝试打开其他端口失败。
什么是失败消息以及它试图打开哪些端口? (我对 PyCharm 一无所知,我实际上并没有使用它)。以上是关于PyCharm 在 Docker 中添加远程 Python 解释器的主要内容,如果未能解决你的问题,请参考以下文章
Pycharm调试docker compose中的manage.py命令
Pycharm 2017.1 EAP Python控制台和远程Docker解释器无法协同工作
在远程服务器上的 docker 容器中设置本地 PyCharm 远程解释器