我正在开发一个新的python / pyramid Web应用程序,并且我很难设置VS Code来调试一个无所事事的容器中的python代码。显然,这对于pycharm是可行的,但是我更喜欢使用VS Code。远程调试文档并没有太大帮助。如果有人有经验或有关于如何执行此操作的指示,我将不胜感激。
我的环境
Windows 10,我正在Vagrant的Virtualbox中运行Ubuntu 16.04。在我执行vagrant up
启动Virtualbox / Ubuntu之后,Vagrant提供的消息中包括SSH用户名和SSH地址(在我的情况下分别为vagrant
和127.0.0.1:2222
)。确保除了腻子以外,还设置了SSH client(我有Openssh-Windows商店中提供了它,并且通常在C:\ Windows \ System32 \ OpenSSH \ ssh.exe中安装)。
首先,将Remote Development扩展名安装到VS Code中。然后按F1,键入remote以显示远程开发选项,然后选择Remote-SSH:Connect to Host ...
一个问题] >>
Vagrant默认将端口22转发到2222,这对于VS Code来说似乎是一个问题。我可以使用git-bash并在Windows命令行(使用Openssh)和SSH用户名和地址(如上)通过输入ssh [email protected] -p 2222
来进入Virtualbox / Vagrant罚款模式(请注意,ssh [email protected]: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 [email protected]
就可以从VS Code连接。
[另一件事...] >>
在VS Code中按F1,键入remote
并选择Remote-SSH:Settings。在远程设置的底部,打开显示登录终端。 (您将在此处输入密码以完成SSH登录[默认密码为vagrant])。我尚未为基于密钥的登录设置任何东西。也许我会在回答时更新此答案。Postscript
] >>目前看来,设置remote debugging仍然很麻烦。