2017-07-31 109 views
0

我想在萝卜中运行测试,这是一个用于Python的行为驱动开发环境,但是我甚至无法做到最简单的事情。导入模块从Python萝卜bdd可执行文件失败

我有这样的结构: “”

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

当我从我的工作目录做

python -c "import radish.harness" 

,一切都很好。

当我在文件steps.py相同(“进口radish.harness”或“进口线束”),从同一目录调用命令“萝卜功能”时,我得到这个:

ModuleNotFoundError: No module named 'radish.harness' 

ModuleNotFoundError: No module named 'harness' 

的萝卜BDD快速入门指南quick start guide说一下:

如何萝卜科幻nd我的Python模块?萝卜进口所有python 模块内basedir。默认情况下,basedir指向 $ PWD /萝卜,在我们的情况下是完全正常的。

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

任何人都可以告诉我如何导入模块?我迷路了。看来,我对模块导入的Python知识没有帮助。

回答

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导入您的 “安全带” 模块这样

import harness 

这将工作,因为在这种情况下,Python会找到您的“线束”模块,因为它在当前目录中。