我發現了很多類似的帖子。但是,這些帖子並未提供我的問題的解決方案。所以我想問一些關於我的問題的問題。我的問題是在單元測試和導入模塊。我的項目有以下層次結構。Python單元測試和導入錯誤
app/
__init__.py
src/
__init__.py
person.py
tests/
__init__.py
test_person.py
我使用pytest進行單元測試。內部測試/ test_person.py
## tests/test_person.py
from ..src import person
內的src/person.py
## src/person.py
from Bio import PDB
從應用程序/,我運行py.test並得到了錯誤。
from Bio import PDB
E ImportError: No module named Bio
我在命令行中進一步測試,檢查是否可以導入生物導入PDB。它可以無任何錯誤地導入。
Python 2.7.4 (default, May 14 2013, 09:41:12)
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from Bio import PDB
>>>
我不知道什麼是錯誤。有人猜測?
它從不同的目錄工作。 – Exchhattu 2014-09-12 11:41:07
使用命令行時,導致「Bio」成功導入的原因是什麼?它不在上面提到的文件夾中。 – Hetzroni 2014-09-12 12:47:24
更新:在我的系統中,由於程序依賴性,我已經把版本的python - python 2.6和python 2.7。我在/ usr/bin /和python2.7中的/ usr/local/bin中安裝了python2.6。現在,當我使用python2.6時,沒有模塊錯誤出現 - 來自Bio import PDB。由於py.test也安裝在/ user/bin,所以當默認使用py.test時,我認爲它使用/ usr/bin中的python而不是默認路徑/ usr/local/bin。你能告訴我怎麼知道py.test正在使用什麼(python)?我如何在py.test中自定義庫路徑? – Exchhattu 2014-09-13 04:02:33