在Powershell中切换Python版本(包括32位与64位切换)

切换Python版本
本文介绍了一种在不同Python版本间切换的简单方法:通过直接进入目标Python版本的安装目录并使用对应的Python执行文件来运行程序。此外,还介绍了如何为特定版本的Python安装第三方库。

我装了好几个Pyhton,2.7的有两个,32位的和64位的,3.6的也是这样。关于在Powershell中切换Python版本的方法,网上有不少,不过那是切换针对Python2和Python3的方法,那我想在Python2的32位与64位之间切换怎么办?今天讲个简单粗暴的方法。。。。。。。

请直接转到对应版本的Python安装目录。

cd 对应版本安装目录

然后

./python

直接运行。

另外,想给某个版本的Python用pip安装工具包,也可以这样,直接转到对应版本Python版本的Scripts文件夹

cd 对应Python版本的Scripts文件夹路径

然后

./pip install 安装包路径

在 VS Code 中右下角切换 Python 解释器 **“不起作用”** 是一个常见但令人困扰的问题。你可能已经通过点击状态栏选择了 64 Python 路径,但终端、调试器或 IntelliSense 依然使用的是旧的(比如 32 Python,导致编译失败、导入错误等问题。 --- ## 🔍 问题本质:为什么“切换解释器”不起作用? VS Code 的“Python 解释器”设置影响多个组件: - ✅ 状态栏显示 - ✅ Python 插件(如 Pylance) - ❌ **不一定自动改变终端中运行的 `python` 命令** - ❌ 不一定更新 `tasks.json` / `launch.json` 使用的解释器 - ❌ 不一定同步到 C++ 编译环境(include 路径等) --- ## ✅ 完整解决方案:确保所有环节都使用目标 64 Python ### ✅ 步骤 1:确认你选择的是正确的解释器路径 1. 按下 `Ctrl + Shift + P` 2. 输入并选择: ``` Python: Select Interpreter ``` 3. 手动输入或从列表中选择你的 **64 Python 可执行文件**,例如: ``` D:/workSoftware/pythonenv/python.exe ``` > ✅ 成功后,状态栏应显示该路径,并且不再提示“Select Python Interpreter”。 --- ### ✅ 步骤 2:验证当前终端是否真的使用了新解释器 打开 VS Code 内置终端(Terminal → New Terminal),然后运行: ```bash python -c "import sys; print(sys.executable); print(sys.maxsize > 2**32)" ``` #### 预期输出(64 ): ``` D:\workSoftware\pythonenv\python.exe True ``` #### 如果输出是: ``` D:\workSoftware\python32\python.exe False ``` 说明终端仍然指向旧的 32 Python! --- ## 🛠 原因和解决方法 ### ❌ 原因 1:系统 PATH 中有其他 Python 干扰 Windows 上经常存在多个 Python: - 官方 Python - Anaconda - Microsoft Store Python - py.exe 启动器默认选错版本 #### ✅ 解决方案:强制终端使用虚拟环境或指定路径 #### 方法一:激活虚拟环境(推荐) 如果你的目标 Python 是某个虚拟环境(如 `pythonenv`),你应该 **手动激活它**: ```bash # Windows CMD D:\workSoftware\pythonenv\Scripts\activate # PowerShell(需要允许脚本执行) Set-ExecutionPolicy RemoteSigned -Scope CurrentUser D:\workSoftware\pythonenv\Scripts\Activate.ps1 ``` 激活成功后,命令行前缀会变成 `(pythonenv)`,此时运行 `python` 就是你想要的那个。 > 💡 提示:可以在 `.vscode/settings.json` 中设置自动激活: ```json { "python.terminal.activateEnvironment": true, "python.defaultInterpreterPath": "D:/workSoftware/pythonenv/python.exe" } ``` 但这只对新建的终端有效。 --- #### 方法二:不要依赖 `python` 命令,直接调用完整路径 避免歧义,永远使用完整路径: ```bash D:/workSoftware/pythonenv/python.exe your_script.py ``` 或者在任务/构建脚本中这样写: ```bash D:/workSoftware/pythonenv/python.exe -m pybind11 --includes ``` --- ### ❌ 原因 2:VS Code 终端启动时未加载环境变量 即使你在 `settings.json` 设置了解释器,VS Code 的终端仍会从系统的 `PATH` 加载第一个 `python`。 #### ✅ 解决方案:修改默认 shell 或设置 terminal.integrated.env.* 在 `.vscode/settings.json` 中添加: ```json { "terminal.integrated.env.windows": { "PATH": "D:/workSoftware/pythonenv;D:/workSoftware/pythonenv/Scripts;${env:PATH}" } } ``` 这会把你的 64 Python 环境放在 `PATH` 最前面,优先使用。 --- ### ❌ 原因 3:C++ IntelliSense 和编译仍使用旧 include 路径 即使 Python 切换了,`c_cpp_properties.json` 中的 `includePath` 还是指向旧目录。 #### ✅ 解决方案:确保头文件路径与实际解释器一致 检查 `.vscode/c_cpp_properties.json`: ```json "includePath": [ "${workspaceFolder}/**", "D:/workSoftware/pythonenv/include", // 对应 pythonenv "D:/workSoftware/pythonenv/Lib/site-packages/pybind11/include" ], "libraryPath": [ "D:/workSoftware/pythonenv/libs" ] ``` ⚠️ 不要引用 `python32` 相关路径! --- ### ❌ 原因 4:缓存问题(Pylance / Jedi / IntelliSense 缓存旧信息) 有时 VS Code 插件不会立即刷新。 #### ✅ 解决方案: 1. 重启 VS Code。 2. 在命令面板运行: ``` Developer: Reload Window ``` 3. 清除 Pylance 缓存(可选): 删除目录: ``` %USERPROFILE%\.vscode\extensions\ms-python.vscode-pylance-*/dist\ ``` (一般不需要手动删,重启即可) --- ### ❌ 原因 5:`tasks.json` 或 `launch.json` 固定了旧解释器 如果你用 `tasks.json` 编译扩展模块,或用 `launch.json` 调试,它们可能硬编码了 `python32`。 #### ✅ 示例:正确配置 `tasks.json` 使用目标 Python ```json // .vscode/tasks.json { "version": "2.0.0", "tasks": [ { "label": "build pybind11", "type": "shell", "command": "g++", "args": [ "-O3", "-shared", "-std=c++17", "-fPIC", "${file}", "-I${command:python.interpreterPath}/../include", "-I${config:python.defaultInterpreterPath}/Lib/site-packages/pybind11/include", "-L${config:python.defaultInterpreterPath}/libs", "-lpython39", "-o", "${fileDirname}/${fileBasenameNoExtension}.pyd" ], "group": "build", "presentation": { "echo": true, "reveal": "always" }, "problemMatcher": ["$gcc"] } ] } ``` > ⚠️ 注意:`${command:python.interpreterPath}` 并不原生支持,需配合扩展或改用脚本。 更稳妥做法:直接写死路径或使用 shell 脚本封装。 --- ## ✅ 快速验证流程(每日开发前建议执行) ```bash # 1. 查看当前 python 来源 where python # 2. 输出解释器路径和架构 python -c "import sys; print(sys.executable); print(sys.maxsize > 2**32)" # 3. 检查 pybind11 是否安装 python -m pybind11 --includes # 4. 检查是否能编译(示例) g++ -E -x c++ - < NUL 2> nul && echo "g++ works" || echo "g++ not found" ``` --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux在秋名山

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值