当我安装了多个python版本时,如何为VSCode虚拟环境指定python版本?

falq053o  于 2023-02-28  发布在  Python
关注(0)|答案(2)|浏览(394)

我同时安装了64位和32位Python。我尝试使用VSCode中的32位Python.exe文件创建虚拟环境。我在Python中选择了该版本:为我的工作区选择解释器(即C:\Program Files(x86)\Python37-32\python.exe)。
然后,我修改了工作区中的launch.json文件,以包含“python”解释器:

{
    "version": "0.2.0",
    "configurations": [

        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "python": "c:/Program Files (x86)/Python37-32/python.exe"
        }
    ]
}

但是,当我创建虚拟环境时:

py -3 -m venv 32_bit_env

它使用的python解释器是C:\Program Files\Python37\python.exe中的64位版本,如pyvenv.cfg所示:

home = C:\Program Files\Python37

在工作区中是否有其他位置可以更改python.exe文件的目录?谢谢!

cu6pst1q

cu6pst1q1#

您混合了两个概念:VS代码使用的Python解释器和py启动器。除此之外,还有python命令。我将尝试解释它们是如何配置的,它们如何影响和影响什么。

1. python命令

1.1.指定的使用版本

仅限PATH环境变量,使用进程PATH环境变量中第一个文件夹python.exe,进程PATH是进程启动时User和System PATH变量组合而成,子进程如VS Code的集成终端在初始化时继承父进程的PATH

  • 如果虚拟环境处于活动状态,则使用的版本是pyvenv.cfghome键所指向的版本。激活虚拟环境将修改shell的PATH

1.2.用于

在终端中运行python命令时。

2. py命令

py命令是Python 3.3中添加的Windows版Python启动器。

2.2使用的版本指定者

首先,按以下顺序检查

  • 活动的虚拟环境
  • 脚本中的shebang行(如果存在)
  • 带有匹配PY_PYTHON2或PY_PYTHON3环境变量的标志
  • PY_PYTHON环境变量
  • 来自%LOCALAPPDATA%\py.ini文件中py.ini文件的[默认值]
  • 来自py.ini中py.exe旁边的[默认值](使用where py定位)

如果未另行指定,它将始终使用最新安装的版本。

3. VS代码python.pythonPath

3.1.指定的使用版本

.vscode\settings.json中,为python.pythonPath密钥。

3.2.用于

  • 在VS代码中使用Python: Run Python File in Terminal
  • 在VS代码中使用Run: Run Without Debugging作为.py文件时
  • 在VS代码中使用Run: Start Debugging作为.py文件时
  • 当您在VS Code中启动新的集成终端时,* 如果python.exe在虚拟环境中 *,它将被激活。
  • 语言服务,如自动完成,去色,语法检查,格式化。只有那些不使用集成终端运行。

具体来说,python.pythonPath设置影响在集成终端上运行pypython,只有在python.pythonPath指定了虚拟环境,并启动了新的集成终端,且虚拟环境被激活的情况下才有影响,即:没有额外的“魔术”添加VS代码或VS代码集成终端。
集成终端(默认情况下)只是一个普通的Powershell。它对你的VS代码中的X1 M25 N1 X设置毫无头绪。

如何强制使用32位Python 3.7?

您可以使用python 3.7- 32位创建虚拟环境

py -3.7-32 -m venv 32_bit_env

或者,32位v.3.7. python.exe的完整文件路径,假设为Powershell(因此为&):

& "C:\some\path\Python 3.7 32-bit\python.exe" -m venv 32_bit_env

如果需要,您可以使用py -0p检查完整的文件路径。然后,您可以通过编辑设置使此虚拟环境在新的VS Code集成终端中自动激活。json:

{
    "python.pythonPath": "C:/tmp/someproj/my_venv/Scripts/python.exe"
}

请注意,条目中的每个\都必须替换为\\/python.pythonPath必须是绝对值。

2vuwiymt

2vuwiymt2#

我下载了最新的python 3.11.2,当我试图在VS代码中为它建立工作空间时,它会接受的最高版本python是3.10,所以看起来我将再次卸载它。并且将不得不重新安装vsn 3.10(勾选路径和所有其他选项),然后更改从搜索框访问的系统环境变量,正如其他消息来源所建议的。我忽略了所有这些关于Pandas和numpty等的东西,当我不得不安装水蟒时。我希望Python自己的pip能给予我所有我需要的包,而不是使用这个巨大臃肿的水蟒怪物及其Pandas和numpty的包,我对这些新语言只是个初学者

相关问题