从不同位置主文件和包内部导入模块的pythonic方法

问题描述

我试图了解有关在项目中导入python本地模块(版本3)的所有信息。

我有以下文件树:

├── Aux
│   ├── __init__.py
│   ├── lib1.py
│   └── lib2.py
└── main.py

lib1.py内部有一个函数fun_A,在lib2.py内部有一个需要fun_B函数fun_Amain.py同时使用fun_Afun_B函数

问题是:如果要独立执行lib2.pymain.py,应该如何编写导入选项?我的意思是要成功运行以下2条命令(均在必要目录中)。

#in the upper directory (./)
python3 main.py
#in ./Aux directory
python3 lib2.py

也许没有一种pythonic的方法可以做到这一点,因为所有功能都需要导入main.py中?

要复制/粘贴并测试这些文件

---main.py---
from Aux.lib1 import fun_A
from Aux.lib2 import fun_B
if __name__ == "__main__":
    fun_A()
    fun_B()

---lib1.py---
def fun_A():
    print("A function called")

---lib2.py---
from .lib1 import fun_A
def fun_B():
    fun_A()
    print("B function called")

现在有问题的命令是python3 lib2.py,它输出ModuleNotFoundError: No module named '__main__.lib1'

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...