我正在开发一个在 virtualenv 中使用 Python 3 的 Django 项目。我刚刚遇到了 Fabric,它只能在 Python 2 下工作,所以我在系统范围内安装了它,而不是在我的 virtualenv 中(顺便说一句,是否可以将其放入我的 Python 3 virtualenv 中?)。
这里的问题是我已将 PyCharm 设置为使用 Python 3 作为解释器,并为 Python 2 安装了 Fabric。当我编辑 Fabric 文件时,它说所有来自 Fabric 的导入都是未知的。
有什么办法可以解决这个问题吗?有什么方法可以指定我的结构文件使用 Python 2 解释器而不是 Python 3,或其他解决方案吗?
这是可以做到的(至少对于当前的 PyCharm 2018.2.4),但是需要一些手动操作,并且无法通过 GUI 来完成。
.idea
文件夹modules.xml
<module>
行并更改 fileurl
和 filepath
属性。完成后我的看起来像这样:<?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>
将
$PROJECT_NAME.iml
复制到您为新模块指定的名称。就我而言,我做了:
cp dataops.iml dataops_py27.iml
在 PyCharm 中打开备份项目并转到
Preferences > Project > Project Interpreter.
您将看到两个模块(初始模块和刚刚创建的新模块)。选择新的解释器并通过单击窗口右上角的齿轮图标并选择 Add...
来配置解释器
转到
Preferences > Project > Project Structure.
确保选择了新模块,删除旧的内容根目录并添加新的内容根目录。
注意:如果文件夹中有很多文件,并且不希望新添加的解释器应用于所有文件,您可以在位于
Exclude files:
设置底部的 Preferences > Project > Project Structure
文本框中排除它们。