#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:
SoftwarePython
иSoftwareWow6432NodePython
(который рассматривается как первый 32-разрядными процессами)
-
Файлы:
<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 при внесении изменений в реестр.
- Выполнить regedit.exe .
- Перейдите в раздел HKEY_LOCAL_MACHINE SOFTWARE Python. Вместо IronPython ищите IronPython.
- Разверните узел, соответствующий дистрибутиву, например Python Core для CPython или ContinuumAnalytics для Anaconda. Для IronPython разверните узел с номером версии.
- Проверьте значения в узле InstallPath:
- Если среда все еще существует на вашем компьютере, измените значение ExecutablePath на правильное расположение. Также исправьте значения (по умолчанию) и WindowedExecutablePath по мере необходимости.
- Если среда больше не существует на вашем компьютере и вы хотите удалить ее из окна среды 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