为什么我在导入虚拟环境中构建的包中的模块时收到错误消息?
Why am I receiving an error when importing modules housed in a package built in a Virtual Environment?
当我在虚拟环境中 运行 我的代码时,我得到的输出与我在虚拟环境之外的容器中 运行 代码时得到的输出不同。 AB.py 中的相同文件结构、相同的代码以及 init.py 和 AB.py 文件中的相同导入语句。有关更多详细信息,请参见图像。非常基本,但我只是想知道当父容器位于虚拟环境中时,为什么 python 无法识别我的模块之一。谢谢!
Container A
>AB.py
>>Package_A
>>>>__init__.py,
>>>>Module_A.py,
>>>>Module_B.py,
>>>>Module_C.py
Virtual Environment Container A
>AB.py
>>Package_A
>>>>__init__.py,
>>>>Module_A.py,
>>>>Module_B.py,
>>>>Module_B.py
[See image here] : https://i.stack.imgur.com/RJGpk.png
## Package AB.py
from Package_A import Mod_A, Mod_B, Mod_C
Module_A.Func_A()
Module_B.Func_B()
Module_C.Func_C()
## __init__.py
from a import func_a
from b import func_b
## Module_A.py
def Func_A():
print("how")
## Module_B.py
def Func_B():
print("are")
## Module_C.py
def Func_C():
print("you")
运行 AB.py 容器中 Returns
how
are
you
运行 AB.py 在虚拟环境中 Returns
ModuleNotFoundError: No module named 'a'
找到解决方案,我需要在我的 init.py 文件中更改我的导入 lin。我将其更改为:
from a import func_a
from b import func_b
到
from .a import func_a
from .b import func_b
venv 和非 venv 都是这种情况。我没有指定父文件夹。
当我在虚拟环境中 运行 我的代码时,我得到的输出与我在虚拟环境之外的容器中 运行 代码时得到的输出不同。 AB.py 中的相同文件结构、相同的代码以及 init.py 和 AB.py 文件中的相同导入语句。有关更多详细信息,请参见图像。非常基本,但我只是想知道当父容器位于虚拟环境中时,为什么 python 无法识别我的模块之一。谢谢!
Container A
>AB.py
>>Package_A
>>>>__init__.py,
>>>>Module_A.py,
>>>>Module_B.py,
>>>>Module_C.py
Virtual Environment Container A
>AB.py
>>Package_A
>>>>__init__.py,
>>>>Module_A.py,
>>>>Module_B.py,
>>>>Module_B.py
[See image here] : https://i.stack.imgur.com/RJGpk.png
## Package AB.py
from Package_A import Mod_A, Mod_B, Mod_C
Module_A.Func_A()
Module_B.Func_B()
Module_C.Func_C()
## __init__.py
from a import func_a
from b import func_b
## Module_A.py
def Func_A():
print("how")
## Module_B.py
def Func_B():
print("are")
## Module_C.py
def Func_C():
print("you")
运行 AB.py 容器中 Returns
how
are
you
运行 AB.py 在虚拟环境中 Returns
ModuleNotFoundError: No module named 'a'
找到解决方案,我需要在我的 init.py 文件中更改我的导入 lin。我将其更改为:
from a import func_a
from b import func_b
到
from .a import func_a
from .b import func_b
venv 和非 venv 都是这种情况。我没有指定父文件夹。