2017-12-27 254 views
0

當交互式控制檯上運行此代碼:pytest:從pytest運行,但適用於普通的Python,當模塊沒有導入

>>> import sys 
>>> sys.path.append("/path/to/mypkg") 
>>> import mypkg.src.dbwrapper as dbw 

但不喜歡這樣:

$ cd /path/to/mypkg 
$ python py -m pytest 
mypkg/src/dbwrapper_queries.py:3: in <module> 
    import mypkg.src.dbwrapper as ec 
E ImportError: No module named mypkg.src 

我上運行Python 2.7.14

我可能會丟失什麼?當通過pytest調用時導入失敗,但在運行python時運行,然後在控制檯上導入。

埃德:我不會錯過任何__init__.py文件 - 我確實在每個級別都有。

+0

無處不在。讓我更新我的問題。 – ghostrider

回答

0

難道你不應該在pytest做一個相當於sys.path.append("/path/to/mypkg")?提示:定義PYTHONPATH!

cd /path/to/mypkg 
PYTHONPATH=/path/to/mypkg python py -m pytest