Я использую Visual Studio Code 1.27.2 в Ubuntu 18.04 и Anaconda версии 4.5.10 для управления своими виртуальными средами.
У меня установлены расширения Anaconda и python в vscode.
Я провел простой тест с использованием виртуальной среды, в которой я установил только pytest и pylint для python 3.6.
Если я запускаю этот простой скрипт:
import pytest
def test_test():
assert True == True
Код Visual Studio прекрасно запускает тесты и отображает результаты в консоли вывода.
Если я пытаюсь отладитьэтот сценарий, однако, тест запускается и при выходе я получаю AttributeError sys не имеет атрибута __breakpointhook__, и я не понимаю, почему?Я делаю что-то неправильно?Это ошибка в отладчике кода Visual Studio или интеграция с pytest?
Трассировка стека:
File "/home/leerro/anaconda3/envs/py36TF/lib/python3.6/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec)
File "/home/leerro/anaconda3/envs/py36TF/lib/python3.6/runpy.py", line 85, in _run_code exec(code, run_globals)
File "/home/leerro/.vscode/extensions/ms-python.python-2018.8.0/pythonFiles/experimental/ptvsd/ptvsd/__main__.py", line 211, in <module> singlesession=args.single_session)
File "/home/leerro/.vscode/extensions/ms-python.python-2018.8.0/pythonFiles/experimental/ptvsd/ptvsd/__main__.py", line 205, in main debug_main(addr, name, kind, *extra, **kwargs)
File "/home/leerro/.vscode/extensions/ms-python.python-2018.8.0/pythonFiles/experimental/ptvsd/ptvsd/_local.py", line 28, in debug_main run_module(address, name, *extra, **kwargs)
File "/home/leerro/.vscode/extensions/ms-python.python-2018.8.0/pythonFiles/experimental/ptvsd/ptvsd/_local.py", line 53, in run_module run(argv, addr, **kwargs)
File "/home/leerro/.vscode/extensions/ms-python.python-2018.8.0/pythonFiles/experimental/ptvsd/ptvsd/_local.py", line 125, in _run _pydevd.main()
File "/home/leerro/.vscode/extensions/ms-python.python-2018.8.0/pythonFiles/experimental/ptvsd/ptvsd/_vendored/pydevd/pydevd.py", line 1743, in main debugger.connect(host, port)
File "/home/leerro/.vscode/extensions/ms-python.python-2018.8.0/pythonFiles/experimental/ptvsd/ptvsd/_vendored/pydevd/pydevd.py", line 1099, in run return self._exec(is_module, entry_point_fn, module_name, file, globals, locals)
File "/home/leerro/.vscode/extensions/ms-python.python-2018.8.0/pythonFiles/experimental/ptvsd/ptvsd/_vendored/pydevd/pydevd.py", line 1123, in _exec runpy._run_module_as_main(module_name, alter_argv=False)
File "/home/leerro/anaconda3/envs/py36TF/lib/python3.6/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec)
File "/home/leerro/anaconda3/envs/py36TF/lib/python3.6/runpy.py", line 85, in _run_code exec(code, run_globals)
File "/home/leerro/anaconda3/envs/py36TF/lib/python3.6/site-packages/pytest.py", line 77, in <module> raise SystemExit(pytest.main())
File "/home/leerro/anaconda3/envs/py36TF/lib/python3.6/site-packages/_pytest/config/__init__.py", line 67, in main return config.hook.pytest_cmdline_main(config=config)
File "/home/leerro/anaconda3/envs/py36TF/lib/python3.6/site-packages/pluggy/hooks.py", line 258, in __call__ return self._hookexec(self, self._nonwrappers + self._wrappers, kwargs)
File "/home/leerro/anaconda3/envs/py36TF/lib/python3.6/site-packages/pluggy/manager.py", line 67, in _hookexec return self._inner_hookexec(hook, methods, kwargs)
File "/home/leerro/anaconda3/envs/py36TF/lib/python3.6/site-packages/pluggy/manager.py", line 61, in <lambda> firstresult=hook.spec_opts.get('firstresult'),
File "/home/leerro/anaconda3/envs/py36TF/lib/python3.6/site-packages/pluggy/callers.py", line 201, in _multicall return outcome.get_result()
File "/home/leerro/anaconda3/envs/py36TF/lib/python3.6/site-packages/pluggy/callers.py", line 76, in get_result raise ex[1].with_traceback(ex[2])
File "/home/leerro/anaconda3/envs/py36TF/lib/python3.6/site-packages/pluggy/callers.py", line 180, in _multicall res = hook_impl.function(*args)
File "/home/leerro/anaconda3/envs/py36TF/lib/python3.6/site-packages/_pytest/main.py", line 208, in pytest_cmdline_main return wrap_session(config, _main)
File "/home/leerro/anaconda3/envs/py36TF/lib/python3.6/site-packages/_pytest/main.py", line 203, in wrap_session config._ensure_unconfigure()
File "/home/leerro/anaconda3/envs/py36TF/lib/python3.6/site-packages/_pytest/config/__init__.py", line 611, in _ensure_unconfigure fin()
File "/home/leerro/anaconda3/envs/py36TF/lib/python3.6/site-packages/_pytest/debugging.py", line 67, in fin sys.breakpointhook = sys.__breakpointhook__
AttributeError: module 'sys' has no attribute '__breakpointhook__'
Параметры рабочего пространства:
{
"python.unitTest.pyTestEnabled": true,
"python.unitTest.unittestEnabled": false,
"python.unitTest.nosetestsEnabled": false,
"python.unitTest.autoTestDiscoverOnSaveEnabled": true,
"python.pythonPath": "/home/gabriel/anaconda3/envs/pytestenv/bin/python"
}
Я попытался запустить его из отладкисеанс, использующий эту конфигурацию в файле launch.json, но он дает мне ту же трассировку стека и ошибку.
{
"name": "Debug Pytest",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"pythonPath": "${config:python.pythonPath}",
"module": "pytest",
"envFile": "${workspaceFolder}/.env",
"console": "integratedTerminal",
}
Я немного растерялся и не знаю, где искать дальше.Конечно, я все еще могу отлаживать свой код, поскольку только при выходе возникает исключение, но я нахожу это тревожным, и я не знаю, является ли это проблемой с кодом Visual Studio или с моими конфигурациями.
Anyпомощь будет принята с благодарностью!