Windows的vscode使用wsl中的python
本篇文章已经过期!现在vscode已经提供了wsl插件可以直接在wsl下工作
由于个人习惯,exp一般都在windows使用vscode编写,然而windows下无法装上pwntools,一直想使用wsl中的python。然而正常情况下vscode是不支持使用wsl中的python,需要进行一番魔改,令其能拥有自动补全,查找引用等功能。
效果
pwntools自动补全
查找引用
单步调试
配置命令转发
首先在wsl中安装autopep8,pylint,ctags,python等软件
命令转发之前有人写过一个wslgit,作用是将命令从windows转发到linux,拿下来魔改一下就可以使用
项目地址:https://github.com/andy-5/wslgit
由于已经配置完成,最后附件会提供一个整合包
只需要将整合包内如下的文件解压
随后按下图修改vscode的配置
记得修改exe的位置
配置目录转换
在配置完转发后自动补全已经可用了,但是查找引用还是废的,因为默认传回的是wsl中的路径。读源码后发现查找引用返回结果时使用了completion.py,在如下目录
1 | C:\Users\plusls\.vscode\extensions\ms-python.python-2018.8.0\pythonFiles |
备份原文件替换为附件中的即可
随后还需要替换completion.py中的start_path为自己wsl的目录
配置python调试
在vscode中按下F5可以调试,然而由于默认环境变量是无法传递进wsl的,需要设置环境变量WSLENV
使用附件中的LocalDebugClient.js替换如下路径的文件即可
1 | C:\Users\plusls\.vscode\extensions\ms-python.python-2018.8.0\out\client\debugger\DebugClients\LocalDebugClient.js |
设置环境变量后确实可以调试了,但是断点功能还是残废的,原因和查找引用时一样,都是路径转换的问题
使用附件中的pydevd_file_utils.py替换如下文件
1 | C:\Users\plusls\.vscode\extensions\ms-python.python-2018.8.0\pythonFiles\experimental\ptvsd\ptvsd\_vendored\pydevd\pydevd_file_utils.py |
附录
附件:wsl.zip