我有一个带有单个文件的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
答案 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。