2013-04-04 91 views
0

我收到一個模塊導入錯誤。從另一個目錄導入Python模塊

我的主要文件是/home/mininet/pythonscripts/import.pyMain file program

和我的模塊文件是/home/mininet/test/hello.pymodule file program

我得到的錯誤是:

File "import.py", line 7, in <module> from test.hello import sqr,print_func 
ImportError: No module named hello 

我還添加了__init__.py文件在模塊搜索路徑..請幫助!

回答

1

爲了導入/home/mininet/test/hello.pytest.hello,你必須滿足兩個要求:

  1. /home/mininet/test/__init__.py必須存在,以紀念test作爲一個包。
  2. /home/mininet必須在sys.path上,以便Python在查找test.hello時發現test/hello.py

注意,具有上sys.path/home/mininet/test讓你import hello,但不import test.hello

+0

感謝它的工作。但我們必須每次都這樣做,即在我們所有的模塊相關代碼(如果模塊駐留在另一個目錄中)添加sys.path.insert()代碼..這是相當繁瑣的。任何其他選項 – animesh 2013-04-04 07:28:20

+1

腳本的路徑總是在'sys.path'上,就像標準庫一樣。所以,一種選擇是將腳本放在與包相同的目錄中(例如在'/ home/mininet'中,或將'test'移動到'/ home/mininet/pythonscripts')。或者,您可以使用['.pth'文件](http://docs.python.org/2/library/site.html)在啓動時自動將某些目錄添加到'sys.path'。 – nneonneo 2013-04-04 07:30:11