2010-09-15 120 views
0

儘管互聯網上有很多帖子以及堆棧溢出的一些帖子,但我仍然想問一下這個令人討厭的python「導入」問題。蟒蛇進口問題

好的。所以,開源代碼組織通常是這樣的:

project/src/model.py;

項目/測試/ testmodel.py

如果我把著名__init__.py項目目錄以及在SRC /和測試/子目錄, 然後把「從project.src導入模型」爲testmodel。 PY。 它不起作用!一直告訴我,沒有找到名爲「project.src」的模塊!

如何在不改變代碼結構的情況下解決問題?

回答

1

確保你的目錄project/在你的pythonpath而不是項目目錄。如果您自己添加項目路徑,像import project.src這樣的導入將查找project/project/src。

+0

非常感謝你。它現在有效! – pepero 2010-09-16 20:40:08

0

項目所在的目錄可能不在您的python路徑中。

+0

我將項目目錄添加到pythonpath中。問題依然存在。 – pepero 2010-09-15 20:17:29

3

您應該不要將項目目錄添加到您的pythonpath,但它是父項,例如想象中的設置

/home/user/develop/project/src/model 

你想補充的/ home /用戶/發展到PYTHONPATH

如果仍然不能正常工作,請確保你沒有「project.py」 INSITE項目/ SRC /模型。

+0

非常感謝。有用! – pepero 2010-09-16 20:38:47

0

您可以從testmodel.py使用相對導入(假設的Python 2.5+),如:

from ..src import model 

然而,這不一樣,如果你正在爲主要模塊運行testmodel.py工作。