同时在多个项目中更新 Python 解释器
Updating Python interpreter in multiple projects at the same time
使用 PyCharm,可以在同一个 window / 环境中拥有多个项目。每个项目在 Project > Python Interpreter 部分都有自己的解释器配置。
有没有一种简单的方法可以同时将所有项目切换到同一个解释器?状态栏中的“快速切换器”仅更新被认为是“当前项目”(包含当前或最后打开的文件的项目)。切换到单个项目和多个内容根不是一种选择,因为它会导致多个项目解决的各种其他问题。
问题中描述的情况是在同一个 window 中打开多个项目。如 Managing multiple projects - PyCharm documentation.
中所述
UI 目前不提供同时更改在同一项目 window 中打开的多个项目的解释器的功能。所以剩下的唯一选择(除了在 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
in Settings
>
Project Interpreter
的列表,如果你按下 cog 和 Show All...
,就会填充(在 Windows) 从文件 C:\Users\your_user\AppData\Roaming\JetBrains\PyCharm2020.version\options\jdk.table.xml
那里你会找到对应于你过去添加的每个解释器的 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" />
行替换为定义的自定义范围内的新解释器的行将一键更改。
使用 PyCharm,可以在同一个 window / 环境中拥有多个项目。每个项目在 Project > Python Interpreter 部分都有自己的解释器配置。
有没有一种简单的方法可以同时将所有项目切换到同一个解释器?状态栏中的“快速切换器”仅更新被认为是“当前项目”(包含当前或最后打开的文件的项目)。切换到单个项目和多个内容根不是一种选择,因为它会导致多个项目解决的各种其他问题。
问题中描述的情况是在同一个 window 中打开多个项目。如 Managing multiple projects - PyCharm documentation.
中所述UI 目前不提供同时更改在同一项目 window 中打开的多个项目的解释器的功能。所以剩下的唯一选择(除了在 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
in Settings
>
Project Interpreter
的列表,如果你按下 cog 和 Show All...
,就会填充(在 Windows) 从文件 C:\Users\your_user\AppData\Roaming\JetBrains\PyCharm2020.version\options\jdk.table.xml
那里你会找到对应于你过去添加的每个解释器的 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" />
行替换为定义的自定义范围内的新解释器的行将一键更改。