我正在使用Python 3.6,并且缺少“使用IDLE编辑”选项。我在Stack Overflow和其他网站上阅读了许多有关编辑注册表的主题,但是没有任何效果。我已经完全重新安装了Python 3.6,也尝试了Python 2.7,但我再也没有安装该选项了。有什么想法吗?
答案 0 :(得分:4)
严格来说,这不是编程问题,但是这里的注册表项负责Windows资源管理器中Python文件上的上下文菜单项。
由于我的计算机上安装了多个版本的Python,因此我做了一个“使用IDLE编辑”子菜单。
(免责声明:)是手工制作的,在卸载Python时不会自动删除。您必须自己清理它。)
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Python.File\shell\editwithidle] "MUIVerb"="&Edit with IDLE" "Subcommands"="" [HKEY_CLASSES_ROOT\Python.File\shell\editwithidle\shell] ; Python 2.7 ----------------------------------------------------------------------- [HKEY_CLASSES_ROOT\Python.File\shell\editwithidle\shell\edit27-32] "MUIVerb"="Edit with IDLE 2.7 (32-bit)" [HKEY_CLASSES_ROOT\Python.File\shell\editwithidle\shell\edit27-32\command] @="\"C:\\Python27\\pythonw.exe\" \"C:\\Python27\\Lib\\idlelib\\idle.pyw\" -e \"%1\"" ; Python 3.6 ----------------------------------------------------------------------- [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] @="\"C:\\Python36\\pythonw.exe\" -m idlelib \"%L\" %*"
当然,请根据您的安装目录更改路径。根据已安装的Python版本添加/删除部分。然后另存为.reg文件并导入。
还要注意,我选择了一些明智的子项名称,例如edit36-32
。并非严格要求,它们仅需唯一,但是如果我要创建注册表项,我希望它们包含它们所说的内容。因此,请相应地进行调整。
如果您仅安装了一个Python版本,并且从不打算进行第二次安装,或者您喜欢顶级菜单项而不是子菜单中的菜单项:
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Python.File\shell\editwithidle] @="Edit with IDLE 3.6 (32-bit)" [HKEY_CLASSES_ROOT\Python.File\shell\editwithidle\command] @="\"C:\\Python36\\pythonw.exe\" -m idlelib \"%L\" %*"
答案 1 :(得分:0)
我以前有这个问题。显然,重新安装系统是可以的,但是我在开玩笑,您不必这样做。我将建议一种可以肯定起作用的方法,如下所示: 1.打开注册表 2.在编辑下:搜索“ python” 3.删除找到的任何术语,然后搜索下一个,直到删除与“ python”相关的所有术语。 4.重新安装python,任何您想要的版本,完成!!!
答案 2 :(得分:0)
如果您没有从其他答案中找到解决方案,请查看我的答案here
func (v *clients) makePtr() {
(*v).slice = make([]client, 0)
return
}
func (v clients) makeLit() []client {
return make([]client, 0)
}
func main() {
clsPtr := &clients{} // pointer
clsLit := clients{} // literal
clsLit.makePtr() // literal with pointer reciever
clsLit.makeLit() // literal with pointer reciever
clsPtr.makePtr() // pointer with literal reciever
clsPtr.makeLit() // pointer with pointer reciever
}