python - 模块“io”没有属性“_WindowsConsoleIO”
问题描述
我正在尝试让 pytest 在 Windows PC 上运行。它在一台机器上运行良好,但即使我只是尝试,另一台机器也会出错pytest.exe --version
。工作的机器是 Windows 10 商业版,但这个机器是 Windows 10 家庭版 (x64)。它安装了多个版本的 Python,但我尝试在 3.6 和 3.6-32 下运行它,结果没有差异。
它是通过以下方式安装的:py -3.6 -m pip install -U pytest
运行的输出pytest.exe --version
是:
PS C:\tests\unit> pytest.exe --version
Traceback (most recent call last):
File "c:\users\pyuser\appdata\local\programs\python\python36\lib\runpy.py", line 184, in _run_module_as_main
"__main__", mod_spec)
File "c:\users\pyuser\appdata\local\programs\python\python36\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Users\pyuser\AppData\Local\Programs\Python\python36\Scripts\pytest.exe\__main__.py", line 9, in <module>
File "c:\users\pyuser\appdata\local\programs\python\python36\lib\site-packages\_pytest\config\__init__.py", line 63, in main
config = _prepareconfig(args, plugins)
File "c:\users\pyuser\appdata\local\programs\python\python36\lib\site-packages\_pytest\config\__init__.py", line 207, in _prepareconfig
pluginmanager=pluginmanager, args=args
File "c:\users\pyuser\appdata\local\programs\python\python36\lib\site-packages\pluggy\hooks.py", line 289, in __call__
return self._hookexec(self, self.get_hookimpls(), kwargs)
File "c:\users\pyuser\appdata\local\programs\python\python36\lib\site-packages\pluggy\manager.py", line 87, in _hookexec
return self._inner_hookexec(hook, methods, kwargs)
File "c:\users\pyuser\appdata\local\programs\python\python36\lib\site-packages\pluggy\manager.py", line 81, in <lambda>
firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
File "c:\users\pyuser\appdata\local\programs\python\python36\lib\site-packages\pluggy\callers.py", line 203, in _multicall
gen.send(outcome)
File "c:\users\pyuser\appdata\local\programs\python\python36\lib\site-packages\_pytest\helpconfig.py", line 94, in pytest_cmdline_parse
config = outcome.get_result()
File "c:\users\pyuser\appdata\local\programs\python\python36\lib\site-packages\pluggy\callers.py", line 80, in get_result
raise ex[1].with_traceback(ex[2])
File "c:\users\pyuser\appdata\local\programs\python\python36\lib\site-packages\pluggy\callers.py", line 187, in _multicall
res = hook_impl.function(*args)
File "c:\users\pyuser\appdata\local\programs\python\python36\lib\site-packages\_pytest\config\__init__.py", line 687, in pytest_cmdline_parse
self.parse(args)
File "c:\users\pyuser\appdata\local\programs\python\python36\lib\site-packages\_pytest\config\__init__.py", line 895, in parse
self._preparse(args, addopts=addopts)
File "c:\users\pyuser\appdata\local\programs\python\python36\lib\site-packages\_pytest\config\__init__.py", line 851, in _preparse
early_config=self, args=args, parser=self._parser
File "c:\users\pyuser\appdata\local\programs\python\python36\lib\site-packages\pluggy\hooks.py", line 289, in __call__
return self._hookexec(self, self.get_hookimpls(), kwargs)
File "c:\users\pyuser\appdata\local\programs\python\python36\lib\site-packages\pluggy\manager.py", line 87, in _hookexec
return self._inner_hookexec(hook, methods, kwargs)
File "c:\users\pyuser\appdata\local\programs\python\python36\lib\site-packages\pluggy\manager.py", line 81, in <lambda>
firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
File "c:\users\pyuser\appdata\local\programs\python\python36\lib\site-packages\pluggy\callers.py", line 208, in _multicall
return outcome.get_result()
File "c:\users\pyuser\appdata\local\programs\python\python36\lib\site-packages\pluggy\callers.py", line 80, in get_result
raise ex[1].with_traceback(ex[2])
File "c:\users\pyuser\appdata\local\programs\python\python36\lib\site-packages\pluggy\callers.py", line 182, in _multicall
next(gen) # first yield
File "c:\users\pyuser\appdata\local\programs\python\python36\lib\site-packages\_pytest\capture.py", line 50, in pytest_load_initial_conftests
_py36_windowsconsoleio_workaround(sys.stdout)
File "c:\users\pyuser\appdata\local\programs\python\python36\lib\site-packages\_pytest\capture.py", line 820, in _py36_windowsconsoleio_workaround
if not isinstance(raw_stdout, io._WindowsConsoleIO):
AttributeError: module 'io' has no attribute '_WindowsConsoleIO'
我在网上找不到对此问题的任何引用,我也不知道为什么该io
模块会缺少该_WindowsConsoleIO
属性。
解决方案
推荐阅读
- r - 使用 dev.off() 保存 600 分辨率的 .JPG 箱线图
- rust - 如何创建使用流利的链接语法而不需要括号的类型?
- python - 使用来自复杂 API 调用的数据更新 Flask 页面的最佳实践方法是什么?
- base64 - base64 编码字符串前面的“77u/”是什么?
- sql - 计算 SQL Server 中两个相似表列之间的比率
- google-apps - Google Oauh2 验证无效参数
- swift - 每毫秒更新进度条
- smalltalk - 如何在 PetitParser 中定义 Pascal 变量
- javascript - 反应 | TypeScript - “this” onClick 事件的上下文
- c++ - 优先队列堆积