2017-06-16 64 views
0

从父目录中导入模块我已在目录结构无法在包装

pytest_testing/ 
    __init__.py 
    math_ops.py 
    dbs/ 
     __init__.py 
     dbConnect.py 
    tests/ 
     test1.py 

现在test1.py我试图做进口从数据库连接模块的功能,这样from pytest_testing.dbs.dbConnect import query_data,但我得到以下错误“没有模块名为pytest_testin。

如果我尝试在一个目录与上述相同pytest_testing一切工作就好了。我失去了一些东西?

+0

'没有模块名为pytest_testin'不带眼镜在结束了吗?并使其工作'从..dbs.dbConnect导入query_data' –

+0

这只是一个错字..没有遗漏G结束。也相对进口也不起作用它说什么试图导入超出包 – Rohit

回答

0

好吧,你可以输入这个from dbs.dbConnect import query_data。 我觉得这可以很好地工作

+0

这不起作用... – Rohit

0

如果您使用的是Linux或Windows使用的代码:

# test1.py 

import sys 
sys.path.append(/path/to/pytest_testing/dbs/) 
from dbConnect import functionName #dbConnect without .py extension 
+0

这似乎工作,但我总是不得不追加到sys路径的包路径?这更像是一种黑客而不是pythonic解决方案:) – Rohit

+0

默认情况下,Python只搜索当前目录(即从入口点脚本运行的目录)和包含诸如软件包安装目录等位置的“sys.path” ,因此将所需的程序包路径附加到sys路径中是“非pythonic”,但是这样做是“一种可靠的方式”。 – codedak