我遇到了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
效果很好。我不知道什么时候我错了。谁能帮助我?
答案 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
查看。