PyCharm如何以及为何改变Python的导入逻辑?

时间:2011-04-26 18:02:51

标签: python import pythonpath pycharm

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

问题:当我打开PyCharm编辑beta文件夹时,import语句alpha文件夹导入模块!当我从命令行启动python.exe解释器时,一切都按预期工作 - 问题似乎只有才能使用PyCharm

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

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

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

1 个答案:

答案 0 :(得分:13)

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

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

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