我正在尝试运行一个可通过环境变量看到的 Python 脚本,同时在 Windows 10 PowerShell 5.1 上$env:PATH
使用 Python 。例如virtualenv
(venv) PS C:\Users\matth\Dev> script.py
不幸的是,它没有通过 中提供的 python 解释器运行virtualenv
,而是在默认程序中打开文件(在我的情况下是 Visual Studio Code)。
按照此 stackexchange 问答,我通过环境变量编辑器将“.py”添加到PATHEXT
变量中,并通过以下行确认这是添加的。
(venv) PS C:\Users\matth\Dev> $env:PATHEXT
.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.py;.CPL
不幸的是,这并不能解决我的问题,因为即使打开了新的 PowerShell 实例后,脚本仍然在 Visual Studio Code 中打开。
$env:PATH
根据要求,以下是该变量的完整输出。
(venv) PS C:\Users\matth\Dev> $env:PATH
C:\Users\matth\Dev\venv/Scripts;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\libnvvp;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\extras\CUPTI\lib64;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\include;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\libnvvp;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\extras\CUPTI\lib64;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Program Files\NVIDIA Corporation\Nsight Compute 2020.2.1\;C:\msys64\usr\bin;C:\Program Files\Docker\Docker\resources\bin;C:\ProgramData\DockerDesktop\version-bin;C:\Users\matth\AppData\Local\Programs\Python\Python38\Scripts\;C:\Users\matth\AppData\Local\Programs\Python\Python38\;C:\Users\matth\AppData\Local\Microsoft\WindowsApps;C:\Users\matth\AppData\Local\Programs\Microsoft VS Code\bin
我是不是遗漏了什么?
答案1
我在相关 StackOverflow 问题昨天。
Visual Studio Code 在安装时显然会设置多个文件扩展名关联,因此 Windows 关联优先于 shell 的PATHEXT
。不幸的是,相关问题中的解决方案对您不起作用,因为您需要通过路径而不是“硬编码”来确定 Python exe virtualenv
。虽然 Windows 10 可以轻松改变一个协会,移除这完全不是那么容易的。
您可以通过一些黑客手段完全删除文件扩展名关联(如果您愿意的话,可以通过注册表编辑),但最简单的方法(根据Github 上的这条评论) 似乎是卸载 VSCode,然后重新安装,并且取消选中“将代码注册为编辑器支持的文件类型”选项。