有许多类似的SO问题,但我相信我的关注有所不同。请完整阅读问题。
当我在名为tree
的项目目录中运行Project
命令时,会显示以下信息
.
├── app1
│ ├── __init__.py
│ └── hello.py
└── app2
├── __init__.py
└── utils.py
hello.py
from math import factorial
from app2.utils import hello
if __name__ == "__main__":
hello()
print(factorial(5))
utils.py
def hello():
print("Hello")
if __name__ == "__main__":
hello()
从python app2/utils.py
目录运行Project
可得到以下信息:
hello
但是,从同一python app1/hello.py
目录运行Project
会导致错误。
Traceback (most recent call last):
File "app1/hello.py", line 3, in <module>
from app2.utils import hello
ModuleNotFoundError: No module named 'app2'
在阅读了许多SO答案之后,我找到了解决此问题的方法。答案建议在hello.py
import sys
sys.path.append(".")
建议的方法确实解决了我的问题,但对我来说似乎并不是pythonic(在每个文件中添加相同的行集)。
有没有更好的方法可以达到相同的目的?
谢谢。