12

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

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

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

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

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

4

1 回答 1

13

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

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

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

于 2011-04-26T18:21:22.477 回答