我正在开发一个新的python / pyramid Web应用程序,但是我很难设置VS Code来调试一个无所事事的容器中的python代码。显然,这对于pycharm是可行的,但是我更喜欢使用VS Code。远程调试文档并没有太大帮助。如果有人有经验或有关于如何执行此操作的指示,我将不胜感激。
答案 0 :(得分:2)
我的环境
Windows 10,我正在Vagrant的Virtualbox中运行Ubuntu 16.04。在我执行vagrant up
以启动Virtualbox / Ubuntu之后,Vagrant提供的消息包括SSH用户名和SSH地址(在我的情况下分别为vagrant
和127.0.0.1:2222
)。确保您没有设置腻子以外的其他SSH 客户端(我有Openssh-它在Windows商店中可用,通常安装在C:\ Windows \ System32 \ OpenSSH \ ssh.exe)。 / p>
首先,将 Remote Development 扩展安装到VS Code中。然后按F1,键入 remote 以显示远程开发选择,然后选择 Remote-SSH:连接到主机...
问题
Vagrant默认将端口22转发到2222,这对于VS Code来说似乎是一个问题。我可以使用git-bash并在Windows命令行(使用Openssh)和SSH用户名和地址(如上)通过键入ssh vagrant@127.0.0.1 -p 2222
来进入Virtualbox / Vagrant罚款(注意,ssh vagrant@127.0.0.1:2222
不会工作)。但是,如果您在VS Code中键入此命令以连接到主机,则它将无法正常工作-当使用-p
指定端口时,它将无法连接。
解决方案
如果将Virtualbox与Vagrant一起使用,请打开VirtualBox GUI并打开正在运行的VM的设置。单击网络项,然后单击适当的适配器。单击高级,然后单击端口转发按钮。将2222更改为22(即,您只是将端口22转发至22-您可以使用config.vm.network "forwarded_port", guest: 22, host: 22
将更改永久保存在Vagrantfile中),然后退出设置。
现在连接...
在更改端口转发以使Virtualbox侦听默认的SSH端口22之后,只需使用ssh vagrant@127.0.0.1
就可以从VS Code连接。
还有一件事...
在VS Code中,按F1键,输入 remote ,然后选择 Remote-SSH:Settings 。在远程设置的底部,打开显示登录终端。 (您将在其中输入密码以完成SSH登录(默认密码为 vagrant ])。我尚未为基于密钥的登录设置任何东西。也许我会在回答时更新此答案。
后记
目前看来,设置remote debugging仍然很麻烦。