我正在开发一个在virtualenv中使用Python 3的Django项目。我刚刚遇到了结构,它只能在Python 2下运行,所以我在系统范围内安装它而不是在我的virtualenv中(甚至可以将它放在我的Python 3 virtualenv中,顺便说一下?)。
这里的问题是我将PyCharm设置为使用Python 3作为解释器并为Python 2安装了结构。当我编辑我的结构文件时,它表示所有从结构中导入的内容都是未知的。
有什么办法可以解决这个问题吗?是否可以指定我的结构文件使用Python 2解释器而不是Python 3或其他解决方案?
答案 0 :(得分:1)
这是可以做到的(至少对于当前的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.
确保已选择新模块,删除旧内容根并添加新模块。
注意:如果文件夹中有许多文件,并且不想将新添加的解释器应用于所有文件,则可以在{{1}底部的Exclude files:
文本框中排除它们} 设置。