- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
pluggy
由pytest
使用。最近,pluggy
更改为使用 importlib-metadata
而不是 pkg-resources
。从那时起我就不能再运行测试了。我直接从我的库 (bliss
) 源目录启动 pytest
就像我一直做的那样,但现在一开始就失败了:
Traceback (most recent call last):
File "/opt/conda/envs/testenv/bin/pytest", line 11, in <module>
sys.exit(main())
File "/opt/conda/envs/testenv/lib/python3.7/site-packages/_pytest/config/__init__.py", line 63, in main
config = _prepareconfig(args, plugins)
File "/opt/conda/envs/testenv/lib/python3.7/site-packages/_pytest/config/__init__.py", line 207, in _prepareconfig
pluginmanager=pluginmanager, args=args
File "/opt/conda/envs/testenv/lib/python3.7/site-packages/pluggy/hooks.py", line 289, in __call__
return self._hookexec(self, self.get_hookimpls(), kwargs)
File "/opt/conda/envs/testenv/lib/python3.7/site-packages/pluggy/manager.py", line 87, in _hookexec
return self._inner_hookexec(hook, methods, kwargs)
File "/opt/conda/envs/testenv/lib/python3.7/site-packages/pluggy/manager.py", line 81, in <lambda>
firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
File "/opt/conda/envs/testenv/lib/python3.7/site-packages/pluggy/callers.py", line 203, in _multicall
gen.send(outcome)
File "/opt/conda/envs/testenv/lib/python3.7/site-packages/_pytest/helpconfig.py", line 94, in pytest_cmdline_parse
config = outcome.get_result()
File "/opt/conda/envs/testenv/lib/python3.7/site-packages/pluggy/callers.py", line 80, in get_result
raise ex[1].with_traceback(ex[2])
File "/opt/conda/envs/testenv/lib/python3.7/site-packages/pluggy/callers.py", line 187, in _multicall
res = hook_impl.function(*args)
File "/opt/conda/envs/testenv/lib/python3.7/site-packages/_pytest/config/__init__.py", line 687, in pytest_cmdline_parse
self.parse(args)
File "/opt/conda/envs/testenv/lib/python3.7/site-packages/_pytest/config/__init__.py", line 895, in parse
self._preparse(args, addopts=addopts)
File "/opt/conda/envs/testenv/lib/python3.7/site-packages/_pytest/config/__init__.py", line 836, in _preparse
self._consider_importhook(args)
File "/opt/conda/envs/testenv/lib/python3.7/site-packages/_pytest/config/__init__.py", line 784, in _consider_importhook
self._mark_plugins_for_rewrite(hook)
File "/opt/conda/envs/testenv/lib/python3.7/site-packages/_pytest/config/__init__.py", line 806, in _mark_plugins_for_rewrite
for name in _iter_rewritable_modules(package_files):
File "/opt/conda/envs/testenv/lib/python3.7/site-packages/_pytest/config/__init__.py", line 625, in _iter_rewritable_modules
for fn in package_files:
File "/opt/conda/envs/testenv/lib/python3.7/site-packages/_pytest/config/__init__.py", line 802, in <genexpr>
if any(ep.group == "pytest11" for ep in dist.entry_points)
File "/opt/conda/envs/testenv/lib/python3.7/site-packages/importlib_metadata/__init__.py", line 226, in entry_points
return EntryPoint._from_text(self.read_text('entry_points.txt'))
File "/opt/conda/envs/testenv/lib/python3.7/site-packages/importlib_metadata/__init__.py", line 109, in _from_text
config.read_string(text)
File "/opt/conda/envs/testenv/lib/python3.7/configparser.py", line 722, in read_string
self.read_file(sfile, source)
File "/opt/conda/envs/testenv/lib/python3.7/configparser.py", line 717, in read_file
self._read(f, source)
File "/opt/conda/envs/testenv/lib/python3.7/configparser.py", line 1091, in _read
fpname, lineno)
configparser.DuplicateOptionError: While reading from '<string>' [line 16]: option 'bliss' in section 'console_scripts' already exists
我的setup.py
看起来像这样:
def main():
...
setup(name=meta['name'],
...
entry_points={
"console_scripts": [
"bliss = bliss.shell.cli.main:main",
...
]
},
...
)
console_scripts
部分没有重复。
我不知道为什么会收到此错误消息...
我将问题范围缩小到importlib-metadata
,特别是它创建了一个 ConfigParser 对象来“解析”entry_points.txt 文件(它不存在 !我不知道它来自哪里!),如果我在构造函数它使我的测试再次运行。
最佳答案
通过更多信息,console_scripts
有两个条目,如下所示:
entry_points={
"console_scripts": [
"bliss = bliss.shell.cli.main:main",
...
"Bliss = ...",
]
importlib-metadata 当前存在一个错误,它以不区分大小写的方式解析此文件
这里有一个补丁可以解决这个问题:https://gitlab.com/python-devs/importlib_metadata/merge_requests/76
关于python - 无法再运行 pytest,因为 importlib-metadata entry_points() 因 configparser.DuplicateOptionError 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56491266/
我正在尝试基于 imp 重新实现一些代码要使用的模块importlib反而。 imp.find_module 函数之间存在细微差别和 importlib.find_loader : # Using i
我是 Django 新手。我有一个 Django 休息项目。当我运行它时,错误显示为 from django.utils.importlib import import_module ImportEr
我收到了一份。在Spyder中第二次从子文件夹导入库时出错,但第一次(重新启动Spyder后)或在Spyder外导入时工作正常。。代码是:。其中,test_lib.py只是。输出结果为:。当库不在子文
from importlib.machinery import EXTENSION_SUFFIXES 导入错误:没有名为machinery的模块 清理中...命令 python setup.py Eg
pytest-6.0介绍a new 'import-mode' option dubbed 'importlib'连同声明: "We intend to make importlib the defa
我正在尝试导入 importlib 模块,但收到此消息: >>> importlib Traceback (most recent call last): File "", line 1, in N
鉴于此代码,我如何告诉 python 不使用缓存源或重新加载? import importlib.util spec = importlib.util.spec_from_file_location(
我正在尝试从不同的 python 文件 (*.py) 导入名为“tasks”的字典。 路径存储在我的数组directories['code']中。并非所有文件都包含这些任务指令之一。 问题是,一旦找到
我正在使用 flask 并具有以下结构 manage_server.py cas --- __init__.py --- routes.py --- models.py --- templates
这个问题在这里已经有了答案: from django.utils.importlib import import_module ImportError: No module named import
一旦你导入了 foo 模块,其中你有 bar 类 import importlib foo = importlib.import_module('path/to/foo') 如何简单地调用 bar.r
这个问题在这里已经有了答案: TypeError: Missing 1 required positional argument: 'self' (8 个答案) 关闭 2 年前。 我知道类似的问题已
我正在寻找一种使用 importlib 的方法在 Python 2.x 中即时重写导入模块的字节码。换句话说,我需要在导入期间在编译和执行步骤之间 Hook 我自己的函数。除此之外,我希望导入功能能够
使用 import 语句导入具有本地名称的模块很容易: import numpy as np 我相信 np 在这里被称为“本地名称”,但我可能会混淆。 我不知道如何使用 importlib 模块来做同
我想根据传递给 Python 脚本的参数在我的主函数中选择要导入的模块。所以,我正在使用其中之一 blah = importlib.import_module("blah1") blah = impo
根据 this answer , 你可以使用 importlib 到 import_module 使用像这样的相对导入: importlib.import_module('.c', 'a.b') 为什
第二个断言失败,表明importlib.reload静静地重新加载修改后的模块失败,谁能解释为什么? import os import sys import tempfile import impor
我希望在 Python (3.7) 中动态导入一个模块,模块的代码是在一个字符串中定义的。 下面是一个使用 imp 模块的工作示例,该模块已被弃用,取而代之的是 importlib(从版本 3.4 开
第二个断言失败,表明importlib.reload静静地重新加载修改后的模块失败,谁能解释为什么? import os import sys import tempfile import impor
在我的模块中,我有几个函数依赖于启动时间较长的外部模块。如何使用 LazyLoader ?如果我有 import veggies 或 import veggies.brussels.sprouts 或
我是一名优秀的程序员,十分优秀!