首页 > 解决方案 > 从另一个目录导入定制包

问题描述

我最近开发了一个具有以下结构的包:

.
├── Foo
│   ├── module1.py
│   ├── module2.py
│   ├── __init__.py

我们有:

#__init__.py
from module1 import function1, function2
from module2 import function3
#module1.py
def function1():
   print("Hello")

def function2():
   print("World")
#module2.py
def function3():
   print("Hello again")

我希望能够从另一个目录一次导入我的完整包 Foo(没有我可以关联的相对路径)。

例如,我希望能够Foo.module1.function1()在另一个驱动器上调用我的脚本。我不能使用 sys.path,也不能只将我的脚本或包移动到父/子目录中。

我知道我可以使用 importlib 从特定目录中一一导入所有模块(参见如何在给定完整路径的情况下导入模块?),然后循环,例如使用 glob,但我读到配置__init__文件应该允许我一次导入所有内容。有什么建议吗?(重要的是,使用 Python3.9,无法访问 PyCharm)

标签: python-3.x

解决方案


推荐阅读