nosetests无法找到请求包

时间:2014-05-08 02:51:27

标签: python nose nosetests

我有一个文件foo.py导入requests包,并定义了一个类Foo。

我可以从Python REPL中运行这个类,但是当我运行nosetests时,它会因错误而失败:

ImportError: No module named requests

这是我的目录结构:

.
./mvp
./mvp/__init__.py
./mvp/foo.py
./mvp/tests
./mvp/tests/__init__.py
./mvp/tests/test_foo.py

这是文件./mvp/__init__.py

➜  mvp  cat mvp/__init__.py
from .foo import Foo

➜  mvp

这是我要测试的文件:

➜  mvp  cat mvp/foo.py
import requests

class Foo(object):
  def foo(self):
    return True

➜  mvp 

./mvp/tests/__init__.py是一个空文件。

这是我的测试文件:

➜  mvp  cat mvp/tests/test_foo.py
from mvp import Foo

def test_foo():
  f = Foo()
  assert f.foo()

➜  mvp  

从Python REPL运行:

>>> from mvp import Foo
>>> f = Foo()
>>> f
<mvp.foo.Foo object at 0x1012ba1d0>
>>> 

但是,运行nosetests失败:

(.env)➜  mvp  nosetests
E
======================================================================
ERROR: Failure: ImportError (No module named requests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/nose/loader.py", line 414, in loadTestsFromName
    addr.filename, addr.module)
  File "/Library/Python/2.7/site-packages/nose/importer.py", line 47, in importFromPath
    return self.importFromDir(dir_path, fqname)
  File "/Library/Python/2.7/site-packages/nose/importer.py", line 94, in importFromDir
    mod = load_module(part_fqname, fh, filename, desc)
  File "/Users/foobar/Coding/mvp/mvp/__init__.py", line 1, in <module>
    from .foo import Foo
  File "/Users/foobar/Coding/mvp/mvp/foo.py", line 1, in <module>
    import requests
ImportError: No module named requests

----------------------------------------------------------------------
Ran 1 test in 0.006s

FAILED (errors=1)

我参加了virtualenv,并安装了requests

(.env)➜  mvp  pip freeze
requests==2.2.1
wsgiref==0.1.2
(.env)➜  mvp  

运行nosetests -P也会导致同样的错误。我在这里不知所措,花了很长时间在google上搜索没有运气。

如果我注释掉import requests行,nosetests就可以了。

mvp是我创建的用于重现错误的最小项目。如果需要,我可以将它推送到github。

1 个答案:

答案 0 :(得分:3)

确保安装了nosetests的python版本与安装请求的版本相同。

相关问题