2017-06-16 36 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