python项目结构和导入

时间:2015-10-21 13:00:21

标签: python import

我遇到了python项目的问题。这是我的目录,如:

Hotel/
    hotel/__init__.py
          a.py
          b.py
          c.py
    bin/run.py
    README

整个想法是我想写一个包酒店,然后我会写一些脚本(run.py)来使用该包。所以我把

from hotel import a

到run.py文件中。

但是,当我尝试使用以下命令运行目录Hotel下的run.py文件时:

python ./bin/run.py

有一个导入错误说:没有名为hotel的模块。 但是当我在这个目录下使用ipython并输入

from hotel import a

效果很好。我不知道什么时候我错了。谁能帮助我?

2 个答案:

答案 0 :(得分:0)

正如this answer中所述,运行run.py的位置并不重要,它将是将添加到PYTHONPATH的脚本目录。

在python2.7中,如果你没有将__init__.py文件放在Hotel文件夹以及bin文件夹中,你将遇到任何问题,因为你将无法如果您将Hotel文件夹放在计算机PYTHONPATH的某个位置,请执行它们。

您有两种选择:

1)手动将包裹放在PYTHONPATH上:

<强>仓/ run.py:

import sys
sys.path.insert(0,'..')
from hotel import a

2)将run.py移出到父目录:

Hotel/
    __init__.py  
    hotel/__init__.py
          a.py
          b.py
          c.py
    run.py
    README

答案 1 :(得分:0)

所以酒店是您的模块。为了能够导入它,您必须在python路径中包含以下内容:.../Hotel其中...是您的酒店目录的完整路径。请尝试import sys; print sys.path查看。