我在测试脚本中遇到导入错误问题。看起来它与目录结构有关。
我有以下文件夹结构:
A
├── F1
│ ├── __init__.py
│ └── Src
│ └── F2
│ └── __init__.py
└── tests1
└── tests1
└── test_script.py
A / F1 / Src的/ F2
F1有" __ init__py"在它的水平 F2有" __ init __。py"在其水平
在与F1相同的级别中,还有另一个文件夹" tests1"
tests1 / tests1 / test_script.py
在test_script.py中,我有一行说
来自F1.src.F2导入C
有了上述内容,我得到一个错误说,没有名为" F1.src.F2"
的模块有人知道这里发生了什么吗?
答案 0 :(得分:0)
from F1.src.F2 import C
绝对是重要的。为了使它工作,“F1”必须位于Python路径的某个位置(sys.path
)。通常,如果您在命令行上运行Python,这还包括当前目录。
因此,如果A
目录不是Python路径中的某个目录而不是您当前的工作目录,则导入无效。
模块名称区分大小写。您在一个地方Src
而另一个地方有src
,但我不确定这会反映您的实际目录结构还是您在此处输入的内容。
如果您将test_script.py作为脚本运行,则使用相对导入将不起作用(听起来就是这样。)因此,您真正想要做的是确保从{{运行脚本1}}目录,或者全力以赴,使用A
将您的项目变成一个合法的包,并使用setup.py
等测试运行器。
答案 1 :(得分:0)
我只需要用" egg"创建一个共享库。文件。
就这么简单,但我迟到了!