导入模块从Python radish-bdd可执行文件失败

时间:2017-07-31 14:04:02

标签: python bdd

我正在尝试在萝卜运行测试,这是一个针对Python的行为驱动开发环境,但是我甚至没能做最简单的事情。

我有这个结构:

.
├── features
│   └── my.feature
└── radish
    ├── __init__.py
    ├── harness
    │   ├── __init__.py
    │   └── main.py
    └── steps.py

当我这样做时

python -c "import radish.harness"

来自我的工作目录“。”,事情很好。

当我在文件steps.py中执行相同操作(“import radish.harness”或“import harness”)时,我从同一目录中调用命令“萝卜功能”时得到此信息:

ModuleNotFoundError: No module named 'radish.harness'

ModuleNotFoundError: No module named 'harness'

radish-bdd快速入门指南quick start guide说明了这一点:

  

萝卜如何找到我的python模块?萝卜进口所有的蟒蛇   基于内部的模块。默认情况下,basedir指向   $ PWD /萝卜,在我们的情况下完全没问题。

确实会自动导入放置在萝卜目录中的文件,但我无法从这些文件中导入任何内容(除了系统库)。

有人可以告诉我如何导入模块吗?我迷路了。似乎我对模块导入的python知识没有帮助。

1 个答案:

答案 0 :(得分:1)

我建议您将'harness'目录移动到与'features'和'radish'目录相同的级别。

.
├── features
│   └── my.feature
├── radish
│   ├── __init__.py
│   └── steps.py
└── harness
    ├── __init__.py
    └── main.py

如果你从你的工作目录(“。”)打电话给萝卜:

radish -b radish features/my.feature  

然后你可以从steps.py中导入你的“harness”模块,就像这样

import harness

这样可行,因为在这种情况下,Python会找到你当前目录中的“harness”模块。