当前位置: 首页 > 面试题库 >

Python鼻子导入错误

范华清
2023-03-14
问题内容

我似乎无法获得鼻子测试框架来识别文件结构中测试脚本下的模块。我设置了最简单的示例来演示该问题。我会在下面解释。

这是包文件的结构:

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

foo.py包含:

def dumb_true():
    return True

tests / test_foo.py包含:

import foo

def test_foo():
    assert foo.dumb_true()

两个 init .py文件均为空

如果我nosetests -vv在主目录(foo.py所在的目录)中运行,则会得到:

Failure: ImportError (No module named foo) ... ERROR

======================================================================
ERROR: Failure: ImportError (No module named foo)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python/site-packages/nose-0.11.1-py2.6.egg/nose/loader.py", line 379, in loadTestsFromName
    addr.filename, addr.module)
  File "/usr/lib/python/site-packages/nose-0.11.1-py2.6.egg/nose/importer.py", line 39, in importFromPath
    return self.importFromDir(dir_path, fqname)
  File "/usr/lib/python/site-packages/nose-0.11.1-py2.6.egg/nose/importer.py", line 86, in importFromDir
    mod = load_module(part_fqname, fh, filename, desc)
  File "/home/user/nose_testing/tests/test_foo.py", line 1, in <module>
    import foo
ImportError: No module named foo

----------------------------------------------------------------------
Ran 1 test in 0.002s

FAILED (errors=1)

当我从tests
/目录中运行时,出现相同的错误。根据文档和我发现的示例,nose应该将所有父包都添加到路径以及调用它的目录中,但是在我看来,这似乎没有发生。

我正在使用Python 2.6.2运行Ubuntu 8.04。如果重要的话,我已经手动构建并安装了鼻子(不使用setup_tools)。


问题答案:

__init__.py的顶级目录中有一个。这使其成为一个包装。如果将其删除,则nosetests应该可以工作。

如果不删除它,则必须将其更改importimport dir.foo,这dir是目录的名称。



 类似资料:
  • 问题内容: 这是一个经常以不同形式提出的问题,通常会得到“大声笑,您做得不好”的回答。可以肯定的是,这是因为有人(包括我在内)正在尝试将其用作实现,并且解决方案并不明显(如果您以前没有这样做过)。 会接受“让蝇从瓶子里飞出来”的答案。 给定 tests_sut.py开始的位置: 在根目录中运行鼻子测试会导致: 行驶的路线: a)做一个亲戚 b)将项目的根目录添加到PYTHONPATH c)使用 在

  • 问题内容: 已经使用了平面软件包,我没想到嵌套软件包会遇到这个问题。这是… init .py的内容 这两个和是空的。 内容 内容(3个版本) 版本1 这是导入事物的坏方法和不安全方法(批量导入所有内容),但是它可以工作。 版本2 一种逐项导入的更安全的方法,但是失败了,Python不希望这样:失败,并显示消息:“没有名为模块的模块”。但是…… ……说。所以这是一个模块,但不是一个模块/ -P 8-

  • 我在用python 3.5安装opencv时遇到一些困难。 我已经链接的cv文件,但在我得到一个错误说或更具体地说: /库/框架/Python。framework/Versions/3.5/bin/python3。5/用户/杰米/桌面/测试仪/测试。py回溯(最后一次调用):文件“/Users/Jamie/Desktop/tester/test.py”,第2行,导入cv文件“/Library/Fr

  • 问题内容: 我下载并遵循了MySQL 5.5.8(http://dev.mysql.com/downloads/mysql/)和MySQLdb python插件的安装说明。(http://sourceforge.net/projects/mysql- python/) 当我尝试将MySQLdb导入到python终端时,出现以下错误: 我在堆栈溢出中发现了问题4559699,并按照那里的指示进行操作

  • 问题内容: 我一直在使用python dns模块。我试图在新的Linux安装上使用它,但该模块未加载。我试图清理并安装,但安装似乎无法正常进行。 更新了python版本和pip版本命令的输出 非常感谢你的帮助。 注意:-我在新计算机上安装了防火墙。我不确定它是否会影响导入。但我试图禁用它,但它似乎仍然无法正常工作。 问题答案: 我遇到了与dnspython相同的问题。 我的解决方案是从他们的官方G

  • 问题内容: 在Windows OS(64位)下运行python26时.....我遇到了类似以下错误: 要么 我已经完成了python26的msi安装,所有dll都可以在C:\ Python26 \ Lib \ site-packages \ pywin32_system32下找到 问题答案: 将pywintypes26.dll和pythoncom26.dll从复制到->解决问题后!