“py.test”与“pytest”命令

2024-01-03

The py.test在我的例子中,命令失败了,而pytest运行完全正常。

我使用 pytest-flask 插件:

platform linux -- Python 3.5.2, pytest-3.0.2, py-1.4.31, pluggy-0.3.1
rootdir: /home/sebastian/develop/py/flask-rest-template, inifile: 
plugins: flask-0.10.0

当我调用$ py.test我收到以下错误:

Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/_pytest/config.py", line 301, in _getconftestmodules
    return self._path2confmods[path]
KeyError: local('/home/sebastian/develop/py/flask-rest-template')

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/_pytest/config.py", line 332, in _importconftest
    return self._conftestpath2mod[conftestpath]
KeyError: local('/home/sebastian/develop/py/flask-rest-template/conftest.py')

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/local/lib/python3.5/dist-packages/_pytest/config.py", line 338, in _importconftest
    mod = conftestpath.pyimport()
  File "/usr/local/lib/python3.5/dist-packages/py/_path/local.py", line 650, in pyimport
    __import__(modname)
  File "/usr/local/lib/python3.5/dist-packages/_pytest/assertion/rewrite.py", line 207, in load_module
    py.builtin.exec_(co, mod.__dict__)
  File "/home/sebastian/develop/py/flask-rest-template/conftest.py", line 2, in <module>
    from app.app import create_app
  File "/home/sebastian/develop/py/flask-rest-template/app/app.py", line 1, in <module>
    from flask import Flask
ImportError: No module named 'flask'
ERROR: could not load /home/sebastian/develop/py/flask-rest-template/conftest.py

这是我的实际情况conftest.py file:

import pytest
from app.app import create_app

@pytest.fixture
def app():
    app = create_app()
    return app

我的项目结构如下:

.
├── app
│   ├── __init__.py
│   ├── app.py
│   └── config.py   # flask configuration objects
├── conftest.py     # pytest configruation
├── requirements.txt
├── ...
└── tests
    └── ...

那么,这两个命令有什么区别呢?为什么一个失败而另一个没有?


update 1

1)我必须改变我的相对进口from .config import Config or from config import Config绝对的像from app.config import Config

2) 运行烧瓶python3 -m app.app

3) now pytest and py.test工作正常

非常感谢各位的帮助!


update 2

这变得很奇怪......当使用绝对导入时,使用以下命令运行 python-m选项和烧瓶debug=True那么werkzeug库没有按预期重新加载源:

http://chase-seibert.github.io/blog/2015/06/12/flask-werkzeug-reloader-python-dash-m.html http://chase-seibert.github.io/blog/2015/06/12/flask-werkzeug-reloader-python-dash-m.html

https://github.com/pallets/werkzeug/issues/461 https://github.com/pallets/werkzeug/issues/461

https://github.com/pallets/flask/issues/1246 https://github.com/pallets/flask/issues/1246

这帮助了我app/app.py:

if __name__ == '__main__':
    app.run(debug=True, use_reloader=False)

Then python -m app.app工作正常。


更详细地回答有关实际命令(意味着在命令行上调用该工具)的问题:

The py.test调用是旧的且已损坏的接头。pytest是新的热点(自 3.0 起)。py.test and pytest我猜调用将共存很长一段时间,但在某些时候py.test可能会被弃用。所以我会推荐#dropthedot https://twitter.com/davehunt82/status/756080181085872129.

[...]因此从 pytest 3.0 开始,我们将支持并推荐使用 pytest 作为主命令,而不是 py.test。将来我们可能会弃用 py.test 甚至可能将其删除。

-- 戴夫·亨特 https://github.com/pytest-dev/pytest/issues/1629#issue-161422224

向后兼容性对于 pytest 社区来说是一个非常重要的问题,因此旧的方式可能永远不会消失,而且无论如何保留它也不会造成太大的维护负担(它只是被定义为一个不同的入口点)setup.py https://github.com/pytest-dev/pytest/blob/3.0.0/setup.py#L73).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“py.test”与“pytest”命令 的相关文章

  • pip 安装最新的依赖版本

    当我使用安装包时pip install e 它仅安装不满足的依赖项并忽略依赖项升级 如何在每次运行时安装最新的依赖版本pip install e 我尝试过使用pip install upgrade e 但是使用这个选项没有任何改变 我仍然得
  • sudo 和 pip 不在同一路径上

    pip and sudo不在我的计算机上的同一路径上 因此当 基本上一直 我需要运行这两个命令时 如下所示 sudo pip install xxx I get sudo pip command not found pip下载软件包 但由于
  • 嵌套函数中的变量作用域

    有人可以解释为什么以下程序失败 def g f for in range 10 f def main x 10 def f print x x x 1 g f if name main main 带有消息 Traceback most re
  • 如何使用 tkinter 使用网格功能显示不同的图像?

    我想使用显示文件夹中的图像grid 但是当我尝试使用以下代码时 我得到了迭代单个图像的输出 My code def messageWindow win Toplevel path C Users HP Desktop dataset for
  • 将 numpy 数组及其大小写入二进制文件

    我需要将 2D numpy 数组写入文件 包括其尺寸 以便我可以从 C 程序中读取它并创建相应的数组 我编写了一些简单的代码来保存数组 并且可以从 C 读取它 但是如果我尝试先写入数组的大小 它总是会给我一个错误 这是我的简单 python
  • 如何检查给定的数字是否是2的幂?

    下面的代码不适用于某些输入 a i set 1 while i lt 10000 a add i i lt lt 1 N int input if N in a print True else print False 我最初的想法是检查每个
  • 关于具有自定义损失的 3 输出 ANN 的加权

    我正在尝试定义一个自定义损失函数 它在回归模型中接收 3 个输出变量 def custom loss y true y pred y true c K cast y true float32 Shape batch size 3 y pre
  • python 硒 按名称查找元素

    查找电子邮件输入的正确代码是什么https accounts google com ServiceLogin html 是
  • python os.fork 使用相同的 python 解释器吗?

    据我所知 Python 中的线程使用相同的 Python 解释器实例 我的问题是与创建的流程相同os fork 或者每个进程创建的os fork有自己的翻译吗 每当你 fork 时 整个 Python 进程都会在内存中复制 包括Python
  • 哈希 freezeset 与排序元组

    在 Python 中 给定一组可比较的 可散列的元素s 散列是否更好frozenset s or tuple sorted s 这取决于你在做什么 创建一个更快frozenset 比排序tuple but frozenset占用的内存比tu
  • 在基本 Tensorflow 2.0 中运行简单回归

    我正在学习 Tensorflow 2 0 我认为在 Tensorflow 中实现最基本的简单线性回归是一个好主意 不幸的是 我遇到了几个问题 我想知道这里是否有人可以提供帮助 考虑以下设置 import tensorflow as tf 2
  • PySpark DataFrame 上分组数据的 Pandas 式转换

    如果我们有一个由一列类别和一列值组成的 Pandas 数据框 我们可以通过执行以下操作来删除每个类别中的平均值 df DemeanedValues df groupby Category Values transform lambda g
  • 从 SUDS 中的 SOAP 响应中提取 Cookie

    我必须使用具有多种服务的 API 所有这些都需要来自下面的身份验证的 JSESSION cookie 然而 当我调用下一个服务时 它不会保留 cookie 因此会拒绝它们 from suds client import Client url
  • 根据标签位置计算 Pandas DataFrame 的索引

    我正在尝试计算标签的索引Pandas https pandas pydata org DataFrame在每一列中 基本上我有以下内容DataFrame d col1 label1 label2 label3 col2 label2 lab
  • 从函数在 python 3 中创建全局变量

    我想知道为什么在函数结束后我无法访问变量 variable for raw data 代码是这样的 def htmlfrom Website URL import urllib request response urllib request
  • 如何通过 API Gateway 使用事件调用类型调用 Lambda 函数?

    文件说 默认情况下 Invoke API 采用 RequestResponse 调用类型 您可以选择通过将 Event 指定为 InitationType 来请求异步执行 因此 我可以发送到我的函数 python 的就是到处都是 Inspi
  • 为什么我的 Python 散点图不起作用?

    我使用 pylab 创建了一个非常简单的散点图 pylab scatter engineSize fuelMile pylab show 该程序的其余部分不值得发布 因为正是该行给我带来了问题 当我将 散点 更改为 绘图 时 它会绘制数据图
  • 基于 Web 请求在 Airflow 上运行作业

    我想知道是否可以在通过 HTTP 收到请求时执行气流任务 我对 Airflow 的调度部分不感兴趣 我只是想用它来代替芹菜 因此 示例操作如下所示 用户提交一份表格 请求某些报告 后端接收请求并向用户发送请求已收到的通知 然后后端使用 Ai
  • Python 中的可逆 STFT 和 ISTFT

    有没有通用的形式短时傅立叶变换 https en wikipedia org wiki Short time Fourier transform与内置于 SciPy 或 NumPy 或其他什么中的相应逆变换 这是pyplotspecgram
  • python:日志记录:我们可以向记录器添加多个过滤器吗?考虑哪一个

    我试图了解 Python 日志记录中的多个过滤器 一个在配置中定义 另一个在代码中定义 如何工作 我正在开发一个 Django 项目 下面是我在 settings py 中的记录器配置 我的目标是switch on and switch o

随机推荐

  • 当按钮事件中 window.location 更改时,IE9 onbeforeunload 被调用两次...最小再现

    我一直在锤击这个问题 但一无所获 我有一个取消按钮 执行 window location 404 htm 当点击时 onbeforeunload 处理程序会触发两次 但前提是用户在第一个对话框中单击 留在此页面 正常的导航 页面刷新 转到主
  • Spark 作业失败,因为 HDFS 正在缓存 jar

    我将 Scala Spark jar 上传到 HDFS 以在我们的集群上测试它们 跑步后 我经常意识到需要做出改变 因此 我在本地进行更改 然后将新 jar 推送回 HDFS 然而 经常 并非总是 当我这样做时 hadoop 会抛出一个错误
  • 将 HH:MM:SS 格式的时间仅转换为秒?

    如何转换时间格式HH MM SS变成单位秒数 P S 时间有时可能有格式MM SS only 无需explode任何事物 str time 23 12 95 str time preg replace d 1 2 d 2 00 1 2 st
  • 解释 lambda argparse.HelpFormatter(prog, width)

    此代码可以正常工作以增加帮助文本的宽度 但尚不清楚 lambda 函数是做什么的 编辑 为了澄清 问题不是为什么 lambda 函数通常很有用 但反而 参数解析器初始化代码如何使用 lambda 函数 import argparse imp
  • Windows中的JRE安装目录[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 有没有命令可以检查Windows下活动的 因为机器可以安装1个以上的JRE JRE安装目录 对于linux来说 对应的命令是 which java W
  • Firebase idToken 过期后我该怎么办

    我在用着onAuthStateChanged this unregisterAuthObserver firebase auth onAuthStateChanged user gt if user user getIdToken true
  • grep 在目录中查找包含字符串的文件

    我正在尝试熟悉终端的基础知识 我想在我的 CMS 网站中找到包含我的 Google Analytics 跟踪代码 gaq 作为搜索字符串的文件应该可以解决问题 我的桌面上有一个文件夹 其中包含所有站点文件 用户 我的名字 桌面 网站 我打开
  • Android:如何查找设备的帧速率?

    帧速率 我指的是显示变化的速率 即调用 Ondraw 并重新绘制画布 所有 Android 设备都有默认费率吗 由于该速率取决于设备的处理能力 因此在开始为该移动设备编程之前如何找出该设备的帧速率 这可能是后续这个问题 https stac
  • CSS如何在伪元素内垂直对齐文本

    我创建了一个伪元素来放置无序列表 CSS如下 ul pricing column width 200px height 400px background red position relative margin 50px pricing c
  • dataTables .row( ) 不是服务器端处理行详细信息的函数

    function format d return Full name br Salary br The child row can contain any data you wish including links images inner
  • Android 中使用 iText 生成的 PDF 中不显示西里尔字母

    我正在尝试在我的 Android 应用程序中生成 PDF 我使用 iText 它生成 PDF 但只显示英文字母 我找到了使用 unicode 的 iText 示例代码 我在一个简单的 comsole java 应用程序中尝试了这个示例代码
  • 8086边画边听键盘

    我熟悉等待键盘输入的 INT 16h 但我正在开发一个游戏 我希望有一个游戏循环 它可以在屏幕上显示动画 并且只要有键盘敲击 8086 就应该运行到我的中断处理程序并告诉我按下了哪个键来相应地更新我的数据 我怎么能这样做呢 当调用 INT
  • 使用 OpenCV 删除孤立像素

    我正在寻找一种使用 OpenCV 从二进制图像中删除孤立的白色像素的方法 类似的问题 OpenCV 摆脱孤立像素 https stackoverflow com questions 13755840 opencv get rid of is
  • 参数化数组#uniq(即uniq_by)[重复]

    这个问题在这里已经有答案了 如果我不想从数组中删除重复元素 而是想删除具有特定共同属性的元素 该怎么办 具体来说 我想从数组中删除具有重复 essences 的所有字符串 其中essence 的定义如下 class String def e
  • StreamBuilder Firestore 分页

    我是 flutter 的新手 当滚动到达顶部时 我正在尝试使用 Streambuilder 对聊天进行分页 问题是 当我在滚动监听器流构建器中进行查询时 将其查询优先于滚动监听器并返回旧响应 有什么办法可以做到这一点吗 我在这里有什么选择
  • 从 C# Web 浏览器控件调用控件上的 Javascript 事件

    I am working on a web scraper in C where I have a web browser control that loads a web page I then collect data and depe
  • 使用 python panda 按月、年计算出现频率

    假设我有以下数据系列 Date Category 2014 8 Facebook 2014 8 Vimeo 2014 8 Facebook 2014 8 Facebook 2014 9 Facebook 2014 9 Orkut 2014
  • 在 PyQt5 中,我们如何获取焦点小部件的名称/对象名称?

    在我们的 PyQt5 程序中 我们多次使用 Qline Edits QcheckBox QListwidget 如何知道 我们的程序中使用的小部件有哪些小部件名称 如何获取 返回当前具有焦点的小部件的名称 用户指定的名称 正如 Heike所
  • 在 C++ 中将函数模板作为参数传递

    例如 我想从两个序列中获取最大值列表 left and right 并将结果保存在max seq 它们都是先前定义和分配的 std transform left begin left end right begin max seq begi
  • “py.test”与“pytest”命令

    The py test在我的例子中 命令失败了 而pytest运行完全正常 我使用 pytest flask 插件 platform linux Python 3 5 2 pytest 3 0 2 py 1 4 31 pluggy 0 3