【问题标题】:Updating Python interpreter in multiple projects at the same time同时更新多个项目中的 Python 解释器
【发布时间】:2021-05-08 15:19:10
【问题描述】:

使用 PyCharm,可以在同一个窗口/环境中拥有多个项目。每个项目在 Project > Python Interpreter 部分都有自己的解释器配置。

有没有一种简单的方法可以一次将所有项目切换到同一个解释器?状态栏中的“快速切换器”仅更新被认为是“当前项目”的任何内容(包含当前或上次打开文件的项目)。切换到单个项目和多个内容根不是一种选择,因为它会导致多个项目解决的各种其他问题。

【问题讨论】:

    标签: python pycharm virtualenv multiple-projects


    【解决方案1】:

    问题中描述的情况是在同一个窗口中打开了多个项目。如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>
    

    注意元素&lt;orderEntry&gt;中的type="jdk"" jdkName="Python 3.8 (venv38)"等属性,定义项目设置使用的解释器。通过更改单个 .iml 文件中的这一行,您正在设置该项目的解释器。

    Python InterpretersSettings &gt; 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 中使用它 &gt; Find > Replace in Files (或 Ctrl + Shift + R) 将更改限制为已打开项目的 .idea\your_project_name.iml 文件。

    如果您已经为所有项目设置了一次相同的解释器,那么更改将变得特别容易。在上面的示例中,将&lt;orderEntry type="jdk" jdkName="Python 3.8 (venv38)" jdkType="Python SDK" /&gt; 行替换为定义的自定义范围内的新解释器的行将实现一键更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-26
      • 1970-01-01
      相关资源
      最近更新 更多