问题中描述的情况是在同一个窗口中打开了多个项目。如Managing multiple projects - PyCharm documentation 中所述。
UI 目前不提供同时更改在同一项目窗口中打开的多个项目的解释器的功能。所以剩下的唯一选择(除了在Settings>Project Interpreter UI 对话框中为每个项目单独选择解释器)将是编辑 IDE 项目配置文件。
每个单独项目的解释器都硬编码在每个项目的 .idea 文件夹中的 .iml 文件中,例如(为了便于阅读,截断了一些不相关的行):
project_folder\.idea\your_project_name.iml
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<orderEntry type="jdk" jdkName="Python 3.8 (venv38)" jdkType="Python SDK" />
</component>
</module>
注意元素<orderEntry>中的type="jdk"、" jdkName="Python 3.8 (venv38)"等属性,定义项目设置使用的解释器。通过更改单个 .iml 文件中的这一行,您正在设置该项目的解释器。
Python Interpreters 在Settings > Project Interpreter 中的列表,如果你按下齿轮和Show All...,从文件C:\Users\your_user\AppData\Roaming\JetBrains\PyCharm2020.version\options\jdk.table.xml 中填充(在Windows 中)你会发现XML 元素对应于您过去添加的每个解释器,例如(为了便于阅读,截断了一些不相关的行):
<application>
<component name="ProjectJdkTable">
<jdk version="2">
<name value="Python 3.8 (venv38)" />
<type value="Python SDK" />
<version value="Python 3.8.0" />
<homePath value="C:\path_to_venv38\Scripts\python.exe" />
</jdk>
</component>
</application>
最后,为了在 IDE 中同时更改在项目视图中打开的所有项目的解释器,您可以定义一个 custom scope 并在 Edit 中使用它 > Find > Replace in Files (或 Ctrl + Shift + R) 将更改限制为已打开项目的 .idea\your_project_name.iml 文件。
如果您已经为所有项目设置了一次相同的解释器,那么更改将变得特别容易。在上面的示例中,将<orderEntry type="jdk" jdkName="Python 3.8 (venv38)" jdkType="Python SDK" /> 行替换为定义的自定义范围内的新解释器的行将实现一键更改。