Как избавиться от неработающих сред Python в Visual Studio 2017?

#python #visual-studio #visual-studio-2017 #anaconda

#python #visual-studio #visual-studio-2017 #anaconda

Вопрос:

Я должен написать новый курс для университета с использованием Python. Примерно год назад я установил Anaconda, но никогда по-настоящему с ней не работал. Перед запуском я хотел обновить все, поэтому я удалил свою версию python и Anaconda и переустановил новейшую версию (я знаю, что мог бы просто обновить все).

Я хотел бы работать с VS2017, поскольку это среда IDE, с которой я привык работать (исходящая из фона c #), однако в окне среды python мои старые версии все еще видны, хотя и с зачеркнутым шрифтом:

введите описание изображения здесь

В VS2017 нет возможности удалить поврежденные / деинсталлированные среды, но он отсылает вас к этому веб-сайту. В нижней части есть описание моего решения моей проблемы. Обычно мне не очень нравится редактировать реестр, поскольку я не разбираюсь в этом, однако это происходит непосредственно из learn.microsoft.com страницы, я думал, все в порядке.

Проблема только в том, что изменения не оказали никакого влияния на мою проблему вообще. (уже сделал очевидные вещи, такие как перезапуск VS2017 и Windows).

Дополнительная информация Моя проблема в том, что я хотел запустить скелет скрипта python, который мы получили из курса, чтобы проверить, все ли модули и сам python работают должным образом. Однако я всегда получаю dll load failed ошибку в некоторых модулях ( matplotlib например). Однако запуск скриптов на других IDE (например, интегрированной в Anaconda среде Spyder IDE) работает просто отлично, поэтому я знаю, что модули подходят для установки на моем компьютере. Я хотел исключить вышеупомянутую проблему как источник ошибки, прежде чем смотреть дальше.

Комментарии:

1. «изменения» — какие именно изменения? Что вы увидели в реестре из того, что упоминается в документах, и что вы изменили? «не оказало никакого влияния на мою проблему вообще» — уточнить. Вы по-прежнему видите в средах Python то же самое, что вы показали?

2. Кроме того, пробовали ли вы какие-либо другие меры, упомянутые в документах, например, восстановление установленных продуктов Python?

3. @ivan_pozdeev да, все выглядело как в описании, и я удалил узел python 3.6. Я не восстанавливал версию 3.6, поскольку она была удалена.

4. У вас действительно не установлены другие продукты Python? Возможно, вы установили их для каждого пользователя, и в этом случае вам нужно будет запускаться appwiz.cpl от своего имени, без прав доступа.

5. Хм, если я правильно помню, старая версия 3.6 была установлена только у моего пользователя, а новая предназначена для всех пользователей. Я изучу это.

Ответ №1:

Проверка с помощью Process Monitor (запуск VS с активным мониторингом вплоть до отображения в нем списка сред Python; затем остановка мониторинга и настройка фильтров: Process name есть devenv.exe , Path содержит python , conda или ContinuumAnalytics (три отдельных фильтра)) показывает, что VS ищет установочные данные Python в этих расположениях:

  • Разделы реестра в разделе HKCU (в документе это не упоминается) и HKLM:

  • Файлы:

    • <user profile>.conda каталог
    • Он также выполняет поиск conda.exe в нескольких местах
      • У меня его нет, но если бы он у меня был, можно было бы увидеть, с procmon помощью каких командных строк VS его вызывает. Тогда вы могли бы, например, сделать то же самое самостоятельно и посмотреть, какую информацию из этого получает VS.

Если VS обнаружит записи, которые вы перечисляете, что-то, относящееся к тому, что вы видите в списке, должно быть где-то под этими расположениями.


Чтобы удалить записи, как я уже упоминал,

  • Сначала проверьте, установлен ли у вас соответствующий продукт, и удалите его, если вы это сделаете. Записи в разделе HKCU относятся к продуктам, установленным для каждого пользователя, поэтому вам придется запускать их appwiz.cpl от своего имени (или, скорее, от имени того же пользователя, от имени которого вы запускаете VS), чтобы их увидеть.
  • Если у вас действительно он не установлен, выполните обычную процедуру очистки вручную. Удалите из реестра и с диска все, что выглядит релевантным (по имени, местоположению), включая вышеуказанные записи. На свой страх и риск, конечно. Чтобы VS перестал их находить, должно быть достаточно удаления записей. Вы также можете попытаться переустановить и удалить точно такую же версию программного обеспечения (которую может быть сложно найти) и надеяться, что на этот раз она будет удалена правильно.

Комментарии:

1. Большое спасибо, проблема заключалась в том, что узел Phyton находился в HKCU. Я удалил все материалы, связанные с Python, а затем удалил там узел Python 3.6. Теперь мое окно среды Python очищено, я произведу новую установку Anaconda, и, надеюсь, после этого все будет хорошо!

Ответ №2:

Чтобы исправить среду python в Visual Studio, в которой нет опции восстановления, или удалить недопустимую среду, выполните следующие действия, чтобы напрямую изменить реестр. Visual Studio автоматически обновляет окно среды Python при внесении изменений в реестр.

  1. Выполнить regedit.exe .
  2. Перейдите в раздел HKEY_LOCAL_MACHINE SOFTWARE Python. Вместо IronPython ищите IronPython.
  3. Разверните узел, соответствующий дистрибутиву, например Python Core для CPython или ContinuumAnalytics для Anaconda. Для IronPython разверните узел с номером версии.
  4. Проверьте значения в узле InstallPath: введите описание изображения здесь
  5. Если среда все еще существует на вашем компьютере, измените значение ExecutablePath на правильное расположение. Также исправьте значения (по умолчанию) и WindowedExecutablePath по мере необходимости.
  6. Если среда больше не существует на вашем компьютере и вы хотите удалить ее из окна среды Python, удалите родительский узел InstallPath, например 3.6 на изображении выше.

Ссылка: Microsoft Doc — https://learn.microsoft.com/en-us/visualstudio/python/managing-python-environments-in-visual-studio?view=vs-2019#fix-or-delete-invalid-environments