2013-04-04 55 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

相关问题