在PyCharm中为特定文件设置不同的解释器

Chr*_*son 6 python fabric pycharm python-3.x

我正在研究一个在virtualenv中使用Python 3的Django项目.我刚刚遇到了结构,它只能在Python 2下运行,所以我在系统范围内安装它而不是在我的virtualenv中(甚至可以把它放在我的Python 3 virtualenv中,顺便说一下?).

这里的问题是我将PyCharm设置为使用Python 3作为解释器并为Python 2安装了结构.当我编辑我的结构文件时,它表示所有从结构导入都是未知的.

有什么办法可以解决这个问题吗?是否可以指定我的结构文件使用Python 2解释器而不是Python 3或其他解决方案?

Mik*_*der 5

这是可以做到的(至少在当前的 PyCharm 2018.2.4 中),但需要一些手动工作,并且无法通过 GUI 来完成。

  1. 退出 PyCharm
  2. 导航到.idea您的项目的文件夹
  3. 编辑modules.xml
    • 复制该<module>行并更改fileurlfilepath属性。当我完成后,我的看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ProjectModuleManager">
    <modules>
      <module fileurl="file://$PROJECT_DIR$/.idea/dataops.iml" filepath="$PROJECT_DIR$/.idea/dataops.iml" />
      <module fileurl="file://$PROJECT_DIR$/.idea/dataops_py27.iml" filepath="$PROJECT_DIR$/.idea/dataops_py27.iml" />
    </modules>
  </component>
</project>
Run Code Online (Sandbox Code Playgroud)
  1. 复制$PROJECT_NAME.iml到您为新模块指定的名称。就我而言,我做了: cp dataops.iml dataops_py27.iml

  2. 在 PyCharm 中打开备份的项目,然后转到Preferences > Project > Project Interpreter.您将看到两个模块(初始模块和刚刚创建的新模块)。选择新的并通过单击窗口右上角的齿轮图标并选择来配置解释器Add...

  3. 转到Preferences > Project > Project Structure.确保选择您的新模块,删除旧的内容根目录并添加新的内容根目录。

注意:如果文件夹中有许多文件,并且不希望新添加的解释器应用到所有文件,您可以在设置Exclude files:底部的文本框中排除它们Preferences > Project > Project Structure

  • 在 Pycharm 2018.3 中,您可以简单地执行“文件 &gt; 打开”,选择文件所在的文件夹,然后在提示如何打开项目时选择“附加”,而不是上面的步骤 1 到 4。之后您可以按照步骤 5 和 6 进行操作。 (5认同)