2011-04-26 47 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。

相關問題