python项目结构和导入
我对python项目有一个问题。以下是我的目录:python项目结构和导入,python,import,Python,Import,我对python项目有一个问题。以下是我的目录: Hotel/ hotel/__init__.py a.py b.py c.py bin/run.py README 整个想法是,我想编写一个包hotel,然后我将编写一些scriptsrun.py来使用该包。所以我把 from hotel import a 进入文件run.py 但是,当我尝试使用以下命令运行Hotel目录下的run.py文件时: python
Hotel/
hotel/__init__.py
a.py
b.py
c.py
bin/run.py
README
整个想法是,我想编写一个包hotel,然后我将编写一些scriptsrun.py来使用该包。所以我把
from hotel import a
进入文件run.py
但是,当我尝试使用以下命令运行Hotel目录下的run.py文件时:
python ./bin/run.py
导入错误为:没有名为hotel的模块。
但是当我在这个目录下使用ipython时
from hotel import a
它工作得很好。我不知道什么时候我错了。有人能帮我吗 如中所述,无论从何处运行run.py,都将是添加到PYTHONPATH的脚本目录
在python2.7中,如果您不将_init___u; py.py文件放在Hotel文件夹以及bin文件夹中,您在任何情况下都会遇到问题,因为如果您将Hotel文件夹放在计算机PYTHONPATH的某个位置,您将无法执行这些文件
你有两个选择:
1手动将包放在PYTHONPATH上:
bin/run.py:
2将run.py移出到父目录:
Hotel/
__init__.py
hotel/__init__.py
a.py
b.py
c.py
run.py
README
所以酒店是你们的一个模块。为了能够导入它,必须在python路径中包含以下内容:…/Hotel where。。。是指向酒店目录的完整路径。尝试导入系统;打印sys.path以查看它。谢谢,对于方法1我认为没问题,对于方法2我从未见过有人这样做,在每个github存储库中,项目文件夹中都没有.py。。
Hotel/
__init__.py
hotel/__init__.py
a.py
b.py
c.py
run.py
README