由于导入错误,Py.test测试类失败

时间:2015-11-18 20:35:57

标签: python unit-testing pytest

我有一个带有单个文件的tests /目录,该文件导入了许多第三方程序(pandas等)。我正在安装了pandas的虚拟环境中运行。

df['concat'] = df.apply(dynamic_concat2, axis=1, one='A',two='B')

当我执行py.test时,我收到以下错误:

pip freeze | grep pandas; cat requirements.txt | grep pandas
pandas==0.16.0
pandas==0.16.0

test_pipeline.py文件中的导入pandas调用是什么。

tests/test_pipeline.py:4: in <module>
    import pandas as pd
E   ImportError: No module named pandas

当virtualenv设置正确时,为什么这是一个错误?我做错了什么?

TIA

1 个答案:

答案 0 :(得分:1)

您是否安装了多个Python版本?如果是这样,py.test可能使用不同的版本作为从命令行运行脚本时使用的版本。

EG。在我的系统上,我的PATH上有Python 3.5,所以:

>py.test --version
This is pytest version 2.8.1, imported from c:\program files\python 3.5\lib\site-packages\pytest.py

但是如果我从命令行运行python脚本:(这个打印platform.python_version()

>test.py
2.7.8

实际上,该版本取决于我在脚本中声明的版本,例如。如果该脚本的第一行显示#! python3,则会打印3.5.0。 (而Linux系统也会考虑那个shebang系列)

因此,请确保在运行py.test时使用的版本上安装了pandas。