首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Nosetest和Tox导入模块错误

用Nosetest和Tox导入模块错误
EN

Stack Overflow用户
提问于 2020-06-16 17:11:34
回答 1查看 373关注 0票数 1

在我的项目中,我用的是鼻测试。使用PyCharm,我的毒理管道完全通过了,包括所有的测试。当我使用python3在Ubuntu18.04容器上执行tox时,它会给出以下错误:

ImportError:没有名为“my_project”的模块

最后导致以下错误:

错误:命令/..tox/py36/bin/nosetest的InvocationError (与代码1一起退出)

my_project是我正在测试的模块的名称,目录结构在/ (执行tox的根dir )下面是这样的。

  • my_project/
  • tests/
  • tox.ini
  • setup.cfg
  • other文件

我的tox.ini看起来如下:

代码语言:javascript
复制
[tox]
envlist = py36

[testenv]
commands = python3 setup.py build
           nosetests
deps = -r{toxinidir}/test-requirements.txt

我尝试以不同的方式提供到项目的路径,以进行nosetest命令,但这些都不起作用。我感兴趣的一行是tox的初始输出

安装了

py36 : my_project @py36

这让我想到,如果这就是nosetest找不到my_project的原因。有关详细信息,错误的堆栈跟踪如下:

错误:失败: ImportError (没有名为“my_project”的模块)

回溯(最近一次调用):

文件"/.tox/py36/lib/python3.6/site-packages/nose/failure.py",第39行,在runTest raise self.exc_val.with_traceback(self.tb)中

文件"/.tox/py36/lib/python3.6/site-packages/nose/loader.py",行418,在loadTestsFromName addr.filename,addr.module中)

文件"/.tox/py36/lib/python3.6/site-packages/nose/importer.py",第47行,在importFromPath返回self.importFromDir(dir_path,fqname)中

文件"/.tox/py36/lib/python3.6/site-packages/nose/importer.py",第79行,在importFromDir fh中,文件名,desc =find_module(部件,路径)

文件"/usr/lib/python3.6/imp.py",第297行,在find_module name(_ERR_MSG.format(Name),name=name) ImportError中:没有名为'my_project'的模块

EN

回答 1

Stack Overflow用户

发布于 2020-07-21 20:42:20

我看到了三个可能的罪犯。

(1) python3 setup.py build不应存在于commands区段。

代码语言:javascript
复制
# the build command is redundant, there is a special option for this. 
commands = python3 setup.py build
           nosetests
# The install command with it's default
install_command=python -m pip install {opts} {packages}(ARGV)
deps = -r{toxinidir}/test-requirements.txt

(2)使用Pycharm,您可以将项目添加为sources root (右击文件夹>标记目录为>源根)。或者以其他方式配置它(可能是路径变量?)这使得my_project可以在上下文中用于在Pycharm中运行它?但是,这不应该发生在毒物测试中,除非你有白名单外部或站点文件被转换为True。

因此,当安装在容器上时,此链接不存在。

(3)我不禁注意到setup.pypyproject.toml的脓肿。用于安装my_project的文件。例如,在本地运行此命令,如果安装不能工作,则调试该命令:

代码语言:javascript
复制
pip install .
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62413995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档