我有以下目录结构:
一个
|
| --B--Hello.py
|
| --C--Message.py
现在如果根目录A的路径没有修复,我该如何导入" Hello.py"从B到" Message.py"在C.
答案 0 :(得分:2)
首先,我建议使用python源将空__init__.py
文件添加到每个目录中。它将防止导入的许多问题,因为这是packages在Python中的工作方式:
在你的情况下,它应该是这样的:
A
├── B
│ ├── Hello.py
│ └── __init__.py
├── C
│ ├── Message.py
│ └── __init__.py
└── __init__.py
让我们说Hello.py包含函数foo:
def foo():
return 'bar'
并且Message.py
尝试使用它:
from ..B.Hello import foo
print(foo())
使其工作的第一种方式是让Python解释器完成他的工作并handle package构建:
~ $ python -m A.C.Message
另一个选项是使用以下代码将Hello.py
文件添加到list of known sources:
# Message.py file
import sys, os
sys.path.insert(0, os.path.abspath('..'))
from B.Hello import foo
print(foo())
在这种情况下,您可以使用
执行它~/A/C $ python Message.py