2014-09-22 128 views
0

導入模塊我有一個項目的設置是這樣的(告訴我,如果它是錯的):蟒蛇 - 在同一目錄

project/ 
    module_1/ 
     __init__.py 
     foo.py 
    module_2/ 
     __init__.py 
     bar.py 

在foo.py:

from module_2 import bar 

我得到:

ImportError: No module named module_2 

但是,如果我將項目設置更改爲:

project/ 
    module_1/ 
     __init__.py 
     foo.py 
     module_2/ 
      __init__.py 
      bar.py 

它的工作原理。我該如何解決?

感謝

+0

你在foo.py導入時? – lmc 2014-09-22 18:11:32

+0

是的 - 導入語句是在module_one/foo.py還是module_one/__ init__.py – 2014-09-22 18:14:11

+0

的情況下會發生因爲module2是在foo中進行的。 你應該寫../module2導入欄。 請注意../ – lmc 2014-09-22 18:15:07

回答

0

嘗試使用相對導入:

from ..module_2 import bar 

然後你把它稱爲只是條:bar.method()。

編輯: 添加__main__.pyproject並從一個級別運行,與

python -m project 
+1

它給出「嘗試從另一個包相對導入」錯誤 – 2014-09-22 18:22:35