Редактирование с помощью IDLE исчезло для файлов .py

Раньше у меня была опция Edit with IDLE, когда я щелкал правой кнопкой мыши файлы .py, но я удалял/переустанавливал несколько раз, чтобы некоторые вещи работали, и теперь она исчезла. Я проверил реестр под HKEY_CLASSES_ROOT и HKEY_LOCAL_MACHINE на наличие значений под Python.File и Python.NoConFile, и это "C:\Python27\pythonw.exe" "C:\Python27\Lib\idlelib\idle.pyw" -e "%1", поэтому я не уверен, почему он не работает. Однако он работает для файлов .pyw. Может ли кто-нибудь помочь мне снова заставить это работать? Я также безрезультатно пытался восстановить свою установку Python и следовал Python IDLE исчез из контекстного меню правой кнопки мыши.


person SirParselot    schedule 16.12.2015    source источник
comment
Я мало что знаю об этой ошибке, но вам следует заглянуть в superuser.com/questions/280636/ возможно вы найдете что-то полезное   -  person dot.Py    schedule 16.12.2015
comment
@Pardoido хорошо, это сработало, но это не совсем то, что я имел в виду. Теперь он открывает IDLE с опцией Edit, что нормально, но в конечном итоге я бы хотел вернуть опцию Edit with IDLE.   -  person SirParselot    schedule 16.12.2015
comment
У меня была такая же проблема, и я решил ее, удалив python и удалив из реестра. После этого я установил питон и все вернулось в норму.   -  person AlexDotis    schedule 08.01.2018


Ответы (5)


Обычно это происходит из-за того, что файл .py был открыт в текстовом редакторе и случайно установил параметр по умолчанию «открыть с помощью» на что-то другое, кроме python.

Пытаться:

  • щелкните правой кнопкой мыши файл .py
  • открыть с...
  • выбрать программу по умолчанию...
  • отметьте всегда использовать выбранную программу для открытия файлов такого типа
  • выберите python.exe

Это запускает скрипт в терминале, но также устанавливает тип файла обратно на python.

Теперь снова проверьте контекстное меню.

...

А для тех, кто думает *черт возьми, это не так просто*, ​​просто попробуйте сначала — это может помешать вам взламывать реестр без всякой причины!

person Mark Ch    schedule 16.12.2015
comment
Ха-ха, хорошо, но я думаю, что это была комбинация вещей, потому что я делал это несколько раз раньше. Это уже была программа по умолчанию, но я снова нажал ее, и теперь все работает нормально. - person SirParselot; 16.12.2015
comment
@Quirk Это действительно отвечает на вопрос, потому что в 8 случаях из 10 с этой проблемой ключ реестра HKEY_CLASSES_ROOT\Python.File\shell\Edit with IDLE\command все еще существует с правильным значением C:\Python27\pythonw.exe C :\Python27\Lib\idlelib\idle.pyw -e %1, но windows туда просто не смотрит. Windows будет искать ключ Python.File только в том случае, если программа по умолчанию установлена ​​​​на python.exe. - person Mark Ch; 16.12.2015
comment
Я думаю, что отчасти это было из-за того, что в реестре не было ключа .py. Я предполагаю, что все предыдущие попытки установить python.exe по умолчанию не увенчались успехом из-за этого. - person SirParselot; 16.12.2015
comment
каков полный путь к ключу .py, который вы должны были создать? причина, по которой я спрашиваю, заключается в том, что многие люди получают указание создать раздел реестра HKEY_CLASSES_ROOT\SystemFileAssociations\.py, но это отвлекающий маневр, и его можно снова удалить. - person Mark Ch; 16.12.2015
comment
Это то, что я добавил, и это сделало так, что когда я нажимал «Изменить», он открывался в IDLE, но у него все еще не было возможности Edit with IDLE - person SirParselot; 17.12.2015

Такого рода вещи могут зависеть от версии Windows и версии Python, и их трудно исправить. Есть расширения, абстрактные типы файлов и исполняемые файлы. Для меня в Windows 10 и 3.5.1 assoc в командной строке возвращает список ассоциаций .xyz, который включает

.py=Python.File
.pyc=Python.CompiledFile
.pyo=Python.CompiledFile
.pyw=Python.NoConFile
.pyz=Python.ArchiveFile
.pyzw=Python.NoConArchiveFile

assoc .py=Python.File установит ассоциацию. После того, как они установлены правильно, все еще остается проблема сопоставления абстрактных типов файлов с исполняемыми командами. Ответ Марка Ч. касается этой части.

person Terry Jan Reedy    schedule 16.12.2015
comment
assoc и ftype изменяют системную HKLM\SOFTWARE\Classes ассоциацию и ProgId. Пользовательские настройки переопределяют это в клавише FileExts Проводника. Это может выбрать ProgId системы, или, возможно, определенный в HKCU\SOFTWARE\Classes, или приложение из HKCU\SOFTWARE\Classes\Applications. Последнее является распространенной проблемой для Python, поскольку оно создается автоматически, когда пользователи ищут другое приложение на этом ПК и переходят в каталог установки, чтобы выбрать python.exe. Создаваемая команда open не имеет записи %*, поэтому аргументы командной строки игнорируются. - person Eryk Sun; 18.12.2015
comment
Если бы Стив Дауэр переместил ключ editwithidle с Python.File\Shell на SystemFileAssociations\.py\Shell, он по-прежнему был бы доступен в контекстном меню, когда пользователь связывает другой ProgId. Ключ SystemFileAssociations устанавливает значения по умолчанию с низким приоритетом. - person Eryk Sun; 18.12.2015

я предлагаю, что у меня есть лучший способ решить эту проблему. щелкните правой кнопкой мыши файл .py, откройте с помощью, выберите другое приложение, другие приложения и обязательно установите флажок «Всегда использовать это приложение для открытия файлов .py», затем найдите другое приложение на этом компьютере, окно проводник откроется. затем выберите этот файл C:\Python34\Lib\idlelib\idle.bat Еще одна вещь, значок для файлов python (логотип python исчезает), который мне не нравится. но в любом случае файл python будет открыт в редакторе python IDLE всего одним щелчком мыши (я установил мышь на один щелчок из двойного щелчка).

Спасибо, что прочитали мое предложение

person daniel    schedule 12.01.2017

Я использовал python 3.6 и столкнулся с этой проблемой после установки (и последующего удаления) python 2.7 (к счастью, у меня была другая машина с чистой установкой)

Чтобы восстановить "Редактировать с помощью IDLE" / значки файлов / параметр открытия:

Создайте файл .reg со следующим, щелкните его правой кнопкой мыши и выберите «объединить»:

(ПРИМЕЧАНИЕ: «C:\WINDOWS\py.exe» должно быть правильным, но сначала дважды проверьте наличие .exe)

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.py]
@="Python.File"
"Content Type"="text/plain"

[HKEY_CLASSES_ROOT\Python.File]
@="Python File"

[HKEY_CLASSES_ROOT\Python.File\DefaultIcon]
@="\"C:\\WINDOWS\\py.exe\",1"

[HKEY_CLASSES_ROOT\Python.File\Shell]

[HKEY_CLASSES_ROOT\Python.File\Shell\editwithidle]
"MUIVerb"="&Edit with IDLE"
"Subcommands"=""

[HKEY_CLASSES_ROOT\Python.File\Shell\editwithidle\shell]

[HKEY_CLASSES_ROOT\Python.File\Shell\open]

[HKEY_CLASSES_ROOT\Python.File\Shell\open\command]
@="\"C:\\WINDOWS\\py.exe\" \"%L\" %*"

[HKEY_CLASSES_ROOT\.pyw]
@="Python.NoConFile"
"Content Type"="text/plain"

[HKEY_CLASSES_ROOT\Python.NoConFile]
@="Python File (no console)"

[HKEY_CLASSES_ROOT\Python.NoConFile\DefaultIcon]
@="\"C:\\WINDOWS\\py.exe\",1"

[HKEY_CLASSES_ROOT\Python.NoConFile\Shell]

[HKEY_CLASSES_ROOT\Python.NoConFile\Shell\editwithidle]
"MUIVerb"="&Edit with IDLE"
"Subcommands"=""

[HKEY_CLASSES_ROOT\Python.NoConFile\Shell\editwithidle\shell]

[HKEY_CLASSES_ROOT\Python.NoConFile\Shell\open]

[HKEY_CLASSES_ROOT\Python.NoConFile\Shell\open\command]
@="\"C:\\WINDOWS\\pyw.exe\" \"%L\" %*"

Добавление/исправление версий в меню:

Вот пример .reg для IDLE 3.6 32 бит, где █ — это путь к установке (используйте двойные \)

для других версий измените "Edit with IDLE 3.6 (32-bit)" и edit36-32 в соответствии с вашей версией.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Python.File\Shell\editwithidle\shell\edit36-32]
"MUIVerb"="Edit with IDLE 3.6 (32-bit)"

[HKEY_CLASSES_ROOT\Python.File\Shell\editwithidle\shell\edit36-32\command]
@="\"███████████████\\pythonw.exe\" -m idlelib \"%L\" %*"

[HKEY_CLASSES_ROOT\Python.NoConFile\Shell\editwithidle\shell\edit36-32]
"MUIVerb"="Edit with IDLE 3.6 (32-bit)"

[HKEY_CLASSES_ROOT\Python.NoConFile\Shell\editwithidle\shell\edit36-32\command]
@="\"███████████████\\pythonw.exe\" -m idlelib \"%L\" %*"
person Dojorune    schedule 01.04.2017

Я также загружал python 3-4 раза, но понял, что вы должны выбрать открытие файлов .py с помощью пусковой установки python, значка с космическим кораблем.

  1. Итак, щелкните правой кнопкой мыши файл .py
  2. Открыть с ...
  3. Выбрать другую программу
  4. Убедитесь, что установлен флажок «Всегда использовать выбранную программу для файлов .py».
  5. Выберите программу Python с космическим кораблем.

Это решило мою проблему, надеюсь, решит и вашу.

person Jim M    schedule 21.01.2021