我在wsl上安装了python3.6,并在settings.json中将我的VSC集成终端设置为bash
如果我设置python.pythonPath: "python3"
VSC然后警告我选择python环境并仅显示Windows上的python安装。有没有办法可以将我在wsl上安装的python3添加到VSC中的python环境列表中或者去除警告?
此外,当我尝试在终端中运行Python文件时,它使用绝对路径python3 c:/Users/xxx/Code/test.py
,它无法在bash中打开文件,因为没有这样的文件或目录。我需要在VSC设置中更改什么才能使用python3 /mnt/c/Users/xxx/Code/test.py
?
关于path translation in VSC的github报道了类似的问题。
或者,如果我只是手动运行bash中的python文件来避免VSC和WSL的所有不兼容问题,那会更好吗?
答案 0 :(得分:4)
我能够在Microsoft的vscode
和WSL
Github存储库中提交有关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%"
根据您的家庭相应更改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)
并右键单击VSC以在终端中运行Python文件,输出应为/usr/bin/python3
注意:尽管bat脚本有效但在VSC中它仍会警告您选择Python环境
答案 1 :(得分:0)
不,您正在尝试在Windows程序中运行Linux程序。这没有意义。
您可以在vscode中使用WSL shell。 将其添加到您的用户设置或删除上一个设置,如果已经存在,则添加此项。
"terminal.integrated.shell.windows": "C:\\Windows\\System32\\bash.exe"