如何在Python中使用顶级路径导入?
我正在开发一个python框架,并希望基于顶级包(项目名称)进行导入。用户将通过复制整个框架并在其中编写自己的模块来使用该框架 我当前的结构如下所示:如何在Python中使用顶级路径导入?,python,package,Python,Package,我正在开发一个python框架,并希望基于顶级包(项目名称)进行导入。用户将通过复制整个框架并在其中编写自己的模块来使用该框架 我当前的结构如下所示: myapp/ config.py docs/ framework/ main.py utils.py file.py lib/ some_module.py unit_tests/ test_utils.py 我希望能够以以下方式在lib和unit_测试中的python文件中使用以下导入:
myapp/
config.py
docs/
framework/
main.py
utils.py
file.py
lib/
some_module.py
unit_tests/
test_utils.py
我希望能够以以下方式在lib和unit_测试中的python文件中使用以下导入:
from myapp.framework import utils
有没有一个简单的方法可以做到这一点?我已经尝试过使用sys.path.append()方法,但实际上并不奏效。如果有一个真正的python方法来实现这一点,我不介意付出额外的努力来让它工作
编辑:我再次尝试了sys.path.append(),它确实可以工作,但它确实是一个优雅的解决方案,我真的很想知道是否还有其他方法。简而言之:不能有两个同名的模块,一个在另一个内部。您有
myapp
文件夹和myapp.py
文件
这是因为导入模块的顺序
lib.some_module
,该文件不存在
可能是试图从该模块外部导入myapp.myapp.lib.some_模块
因此,最好的方法是重命名
myapp.py
文件为什么sys.path.append()
不起作用?@ire\u and\u curses-我不确定sys.path.append()为什么不起作用,因为我无法实现我想要的导入。但是,根据我的研究,似乎不建议添加到路径。非常类似:对不起,myapp.py文件应该是一个占位符文件,以显示还有其他文件。它实际上并不存在于框架中。我不可能编辑它。