我们使用PyCharm作为项目的Python IDE。开发人员使用不同类型的操作系统设置,例如,python路径对于我们中的一些人来说是不一样的(有些人有不同位置的本地解释器或远程解释器)。
不幸的是,python解释器路径存储在.idea PyCharm项目文件夹(.iml文件)中。然后,当使用Mercurial合并分支时,它会导致冲突或python路径覆盖。
我们希望在版本控制下继续跟踪.idea文件夹和.iml文件,因为它们确实包含应该在开发人员之间共享的有意义的设置(但是python路径)。
有没有办法在PyCharm项目之外设置python解释器路径?
注意: 有一个有趣的SO问题(Share a PyCharm project across multiple operating systems (different interpreter paths)),但它迫使开发人员为他们所有的其他项目重命名他们的解释器条目(并有一个插件)。
答案 0 :(得分:4)
通过使用virtualenv并同意开发人员之间的通用名称,您可以从项目中抽象出明确的Python解释器位置。这个解决方案是上述SO问题的延伸。
设置工作站:
# .bash_profile
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
创建虚拟环境:
$ mkvirtualenv marketplace-tests
New python executable in marketplace-tests/bin/python
在PyCharm中设置解释器:
.idea
仅包含解释器名称,而不包含位置:
./stackoverflow-test.iml: <orderEntry type="jdk" jdkName="we-all-agreed-on-that-name-interpreter" jdkType="Python SDK" />
./misc.xml: <component name="ProjectRootManager" version="2" project-jdk-name="we-all-agreed-on-that-name-interpreter" project-jdk-type="Python SDK" />
现在,当项目第一次打开工作站时,它会出错并抱怨“为项目选择了无效的Python解释器”。开发人员必须将“我们所有人同意的名称解释器”指向本地虚拟环境,并确保“将此虚拟环境与当前项目关联”复选框处于打开状态。