Проблема
Для удобства создания скриптов на Python-е, в т.ч. для pykd, решил воспользоваться расширением pytools для Visual Studio.
Чтобы интерпретатор Python-а находил модуль pykd без указания полного пути, добавил в переменную окружения PYTHONPATH путь к 64-х битной и 32-х битной версии расширения. В моём случае C:\WinDDK\WinDbgX64\winext и C:\WinDDK\WinDbgX86\winext соответственно. После этого интерпретатор начал падать при попытке использования модуля (похоже что происходит сбой во время загрузки pykd.pyd не соответствующей разрядности).
Вывод очевиден. Если в системе одновременно установлен Python для x86 и x64, то переменную окружения PYTHONPATH лучше не использовать.
Решение
В данном случае возможно 2 варианта:
В сети нашёл вменяемое объяснение происходящему: Python on Windows — Setting PYTHONPATH Environment Variable. Вообще-то в документации об этом сказано. Но это немного не очевидный use-case, хотя по своему удобный...
То есть, для достижения требуемого эффекта нужно:
Для удобства создания скриптов на Python-е, в т.ч. для pykd, решил воспользоваться расширением pytools для Visual Studio.
Чтобы интерпретатор Python-а находил модуль pykd без указания полного пути, добавил в переменную окружения PYTHONPATH путь к 64-х битной и 32-х битной версии расширения. В моём случае C:\WinDDK\WinDbgX64\winext и C:\WinDDK\WinDbgX86\winext соответственно. После этого интерпретатор начал падать при попытке использования модуля (похоже что происходит сбой во время загрузки pykd.pyd не соответствующей разрядности).
Вывод очевиден. Если в системе одновременно установлен Python для x86 и x64, то переменную окружения PYTHONPATH лучше не использовать.
Решение
В данном случае возможно 2 варианта:
- Дополнительно скопировать модуль в соответствующую lib или dll директорию Python-а.
- Модифицировать путь через реестр.
В сети нашёл вменяемое объяснение происходящему: Python on Windows — Setting PYTHONPATH Environment Variable. Вообще-то в документации об этом сказано. Но это немного не очевидный use-case, хотя по своему удобный...
То есть, для достижения требуемого эффекта нужно:
- Создать новый раздел в HKLM\SOFTWARE\Python\PythonCore\version\PythonPath и/или HKLM\SOFTWARE\Wow6432Node\Python\PythonCore\version\PythonPath.
- В значение по умолчанию, через точку с запятой, добавить нужные пути.
Комментариев нет:
Отправить комментарий