2011-04-26 54 views
12

我在Windows上有一个PyCharm 1.2.1。我必须编辑同一个项目的不同分支 - 有点沉重的分支,因为它们生活在磁盘上的不同文件夹中 - 说它是c:\apps\alphac:\apps\beta。对于每个这样的文件夹,应调整PYTHONPATH变量以指向位于项目根文件夹(c:\alpha\vendor,...)内某处的适当供应商库。我设法通过从cmd批处理文件启动PyCharm来解决这个问题,该文件在启动PyCharm之前设置了必要的PYTHONPATH变量值(所以我的PyCharm.cmdalphaPyCharm.cmd之内,在beta目录中)。PyCharm如何以及为什么改变Python的导入逻辑?

问题:当我打开PyCharm编辑beta文件夹,import声明进口模块从alpha文件夹!当我从命令行启动python.exe解释器时,一切都按预期工作 - 问题似乎是,只有PyCharm

第二个奇怪的调查:从PyCharm和外部python.exe解释器执行print sys.path代码给出不同的结果 - 从PyCharm它不显示我的PYTHONPATH模块。我是Python和PyCharm的新手,但是这种行为看起来很奇怪且不一致。

最后我发现PyCharm IDE中的一些设置应该允许我解决这个问题 - File -> Settings -> Python Interpreter。在那里,我找到了alphabeta文件夹的所有路径。无法清除此路径列表,只能禁用某些元素。但即使禁用工作有些愚蠢 - 我应该每次编辑alphabeta“解决方案文件夹”时分别禁用/重新启用它们。

所以最后一个问题:如何用PyCharm编辑单独的项目(文件夹)并强制PyCharm不要从错误的位置导入模块?

回答

13

正确的解决方案不是尝试解决PyCharm的逻辑问题,而是在设计时使用IDE功能。这意味着:

  • 没有使用任何.CMD脚本启动PyCharm
  • 从在设置路径列表中删除所有特定于“阿尔法”的路径和“beta” | Python解释器(如果列出的话)
  • 分别将alpha/vendor和beta/vendor目录标记为alpha和beta项目中的源根目录。

然后PyCharm将正确解析导入,并在从中运行应用程序时自动生成正确的PYTHONPATH。

相关问题