如何使用WSL上安装的python获取Visual Studio Code

Ric*_*cek 6 python-3.x visual-studio-code python-3.6 windows-subsystem-for-linux

我在wsl上安装了python3.6,并将我的VSC集成终端设置为settings.json中的bash

如果设置python.pythonPath: "python3"了VSC,则警告我选择python环境,并仅显示Windows上的python安装。有什么办法可以将我在wsl上安装的python3添加到VSC中的python环境列表中,或者摆脱警告?

另外,当我尝试在Terminal中运行Python文件时,它使用的绝对路径python3 c:/Users/xxx/Code/test.py无法在bash中打开文件,因为没有这样的文件或目录。我需要在VSC设置中进行哪些更改才能使用python3 /mnt/c/Users/xxx/Code/test.py

在github上报道了关于VSC中路径转换的类似问题。

或者,如果我只是手动从bash运行python文件来避免与VSC和WSL的所有不兼容问题,那会更好吗?

Ric*_*cek 4

我能够从 MicrosoftvscodeWSLGithub 存储库上提交的有关 php 的类似问题中找到解决方法。

要在 VSC 的终端中运行 Python 文件,您需要切换回cmd集成终端settings.json

创建批处理文件python3.bat如下:

@echo off
set v_params=%*
set v_params=%v_params:\=/%
set v_params=%v_params:c:=/mnt/c%
set v_params=%v_params:"=\"%
bash.exe -c "python3 %v_params%"
Run Code Online (Sandbox Code Playgroud)

set v_params=%v_params:c:=/mnt/c%根据你的家做相应的改变。(例如,如果您正在运行位于 D 中的 python 文件:将此行更改为set v_params=%v_params:d:=/mnt/d%

添加settings.json/更改如下:

"python.pythonPath": "C:\\path\\to\\bat\\python3"

要测试您的设置,请创建一个test.py文件,如下所示:

import sys

print(sys.executable)
Run Code Online (Sandbox Code Playgroud)

并右键单击 VSC 以在终端中运行 Python 文件,输出应为/usr/bin/python3

注意:虽然bat脚本有效,但在VSC中它仍然会警告您选择Python环境