在Python中导入问题

时间:2014-08-01 00:03:12

标签: python import module

我在测试脚本中遇到导入错误问题。看起来它与目录结构有关。

我有以下文件夹结构:

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"

的模块

有人知道这里发生了什么吗?

2 个答案:

答案 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"创建一个共享库。文件。

就这么简单,但我迟到了!