Python 3.5 отлаживать ошибку запускаVisual Studio 2015 Python 3.5 отлаживать ошибку запуска
Я попытался запустить небольшую программу на Python в режиме отладки с помощью Visual Студийского 2015 Но это не удается добраться до первого оператора, который является import
заявления , Почему он получает ошибку __file__
, как описано ниже?
Пример Quantlib под названием Swap.py запускается без ошибок в Visual Studio 2015 в режиме выпуска. Но в режиме отладки, он получает эту ошибку при запуске:
Additional information: 'module' object has no attribute '__file__'
версия Quantlib является 1.6.2 и версия QuantLib SWIG является 1.6.1.
Это первая линия swap.py есть и он не получает, что далеко:
from QuantLib import *
Я установил Python 3.5 компоненты отладки. Затем в Visual Studio 2015 для Python я создал среду Python для использования python_d.exe, pythonw_d.exe и python35_d.dll.
Окно вывода:
'python_d.exe' (Win32): Loaded 'C:\Program Files (x86)\Python 3.5\python_d.exe'. Symbols loaded.
'python_d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntdll.dll'. Cannot find or open the PDB file.
'python_d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel32.dll'. Cannot find or open the PDB file.
'python_d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\KernelBase.dll'. Cannot find or open the PDB file.
'python_d.exe' (Win32): Loaded 'C:\Program Files (x86)\Python 3.5\python35_d.dll'. Symbols loaded.
'python_d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\vcruntime140d.dll'. Cannot find or open the PDB file.
'python_d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ucrtbased.dll'. Cannot find or open the PDB file.
'python_d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ws2_32.dll'. Cannot find or open the PDB file. <frozen importlib._bootstrap>!_spec_from_module Line 483 Python
<frozen importlib._bootstrap>!_setup Line 1107 Python
<frozen importlib._bootstrap>!_install Line 1134 Python
[External Code]
python_d.exe!wmain(int argc, wchar_t * * argv) Line 14 C
[External Code]
'python_d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\advapi32.dll'. Cannot find or open the PDB file.
'python_d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\nsi.dll'. Cannot find or open the PDB file.
'python_d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\rpcrt4.dll'. Cannot find or open the PDB file.
'python_d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcrt.dll'. Cannot find or open the PDB file.
'python_d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sechost.dll'. Cannot find or open the PDB file.
'python_d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sspicli.dll'. Cannot find or open the PDB file.
'python_d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cryptbase.dll'. Cannot find or open the PDB file.
'python_d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\bcryptprimitives.dll'. Cannot find or open the PDB file.
'python_d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cryptsp.dll'. Cannot find or open the PDB file.
'python_d.exe' (Win32): Loaded 'D:\ProgramFiles\vc2015\Common7\IDE\Extensions\Microsoft\Python Tools for Visual Studio\2.2\Microsoft.PythonTools.Debugger.Helper.x86.dll'. Symbols loaded.
'python_d.exe' (Python): Loaded ''. Module was built without symbols.
The thread 0x26d4 has exited with code 1577189376 (0x5e020000).
'python_d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\rsaenh.dll'. Cannot find or open the PDB file.
'python_d.exe' (Win32): Loaded 'C:\Windows\SysWOW64\bcrypt.dll'. Cannot find or open the PDB file.
'python_d.exe' (Python): Loaded '<frozen importlib._bootstrap>'. Module was built without symbols.
AttributeError
Additional information: 'module' object has no attribute '__file__'
Стек:
<frozen importlib._bootstrap>!_spec_from_module Line 483 Python
<frozen importlib._bootstrap>!_setup Line 1107 Python
<frozen importlib._bootstrap>!_install Line 1134 Python
[External Code]
python_d.exe!wmain(int argc, wchar_t * * argv) Line 14 C
[External Code]
Я был в состоянии отладки в код Python (по крайней мере смотреть на визуальных Locals студии). Нам нужно иметь возможность отлаживать в Python и собственный код. Это то, что стек выглядит как после неудачи:
Это функция Python, которая выходит из строя (с кодом до точки отказа):
def _spec_from_module(module, loader=None, origin=None):
# This function is meant for use in _setup().
try:
spec = module.__spec__
except AttributeError:
pass
else:
if spec is not None:
return spec
name = module.__name__
if loader is None:
try:
loader = module.__loader__
except AttributeError:
# loader will stay None.
pass
try:
location = module.__file__
Но нет __file__
поле в модуле:
объект погрузчик имеет много полей бушель т вот некоторые из них:
loader has type class BuiltinImporter
loader.__module__'_frozen_importlib' str
loader.__mro__ (<class 'BuiltinImporter'>, <class 'object'>) tuple
Вы можете подробно, в начале вопрос, что вопрос, который вы испытываете ... [также прочитать эту ссылку] (HTTP: //stackoverflow.com/help/how-to-ask) – Bonatti