尝试在根目录中导入脚本时出错

时间:2017-03-23 00:04:27

标签: python

我有以下目录结构:

├── __init__.py
├── http
│   ├── __init__.py
│   ├── web.py
└── test
    ├── __init__.py
    ├── app.py

在app.py文件中:

from http import web

当我尝试运行时(在根目录中):

 python test/app.py 

我收到以下错误:

ImportError: no module named http

我知道我可以使用:

python -m test.app

然而,还有另外一种方法吗?

1 个答案:

答案 0 :(得分:1)

当您运行python path/to/script.py时,python会将包含script.py的目录添加到模块搜索路径,但不会神奇地添加任何其他内容。因此,当您运行python test/app.py并且app.py尝试import http时,找不到它,因为http模块不在搜索路径中的任何位置。解决这个问题的简单方法是:

PYTHONPATH=$PWD python test/app.py

这会将您当前的目录添加到模块搜索路径中。假设您当前的目录是包含http模块的目录,这将允许app.py成功导入http