2012-09-04 23 views
0

我非常新到Python。目前我正在嘗試PyCharm,並且遇到一些我在運行測試時無法解釋的奇怪行爲。Nosetest和進口

我目前工作的項目位於一個名爲PythonPlayground文件夾中。該文件夾包含一些子目錄。每個文件夾包含初始化 .py文件。一些文件夾包含nosetest測試。

當我運行從項目目錄內的命令行nosetest亞軍的測試,我必須把「PythonPlayground」在我所有的本地進口的前面。例如。導入所謂的「模式」,在該文件夾「UI」的模塊時,我不得不進口這樣的:

從PythonPlayground.ui.model進口*

但是,當我從內部運行測試Pycharm,我必須再次刪除前面的「PythonPlayground」,否則測試不起作用。就像這樣:

從ui.model進口*

我也嘗試了模擬框架,以及由於某種原因,這個框架總是需要的模塊的全名(包括「PythonPlayground」) 。不要緊,我是否運行從命令行或從內部PyCharm測試:

補丁(「PythonPlayground.ui.models.User」)作爲模擬:

有人能解釋對我的行爲有差異?什麼是正確的行爲?

回答

1

我認爲這是因爲PyCharm擁有自己的「複製」解釋器,它有自己的sys路徑版本,其中你的項目根目錄設置爲一級,降低了PythonPlayground目錄。在PyCharm解釋的 你能找到的喜好來回回你的項目,並設置適當的頂尖水平。 ps。我有同樣的問題,但在Eclipse + pydev

+2

這似乎是正確的,由[本]建議(http://stackoverflow.com/questions/5794502/pycharm-and-pythonpath-issue-how-and-why-pycharm -alter-python-import-logic)回答。 – Bakuriu

+0

這確實是對的。將我的源文件移動到名爲「src」的目錄中,並將該目錄標記爲項目設置中的源目錄,解決了問題:) – svb