【问题标题】:Why is the console minimized automatically?为什么控制台会自动最小化?
【发布时间】:2017-04-28 06:10:55
【问题描述】:

我是 Python 新手。今天在控制台运行Python脚本时发现了一个问题。当我在 cmd 中运行脚本时,它会自动最小化。此外,如果我只打开 cmd 来执行 .py 文件,它会同时打开最小化的文件。最后,没有任何内容写入控制台。有谁知道为什么?

如果是代码本身导致问题,我已将其粘贴在下面:

# -*- coding: utf-8 -*-
from functools import reduce    
def fn(x,y):
        return x*10+y
def char2num(s):
        return {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[s]
t=reduce(fn,map(char2num,'123456'))
print(t)

根据如下命令,.py文件关联目前由Notepad++处理。

>reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\UserChoice

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\UserChoice

    Hash    REG_SZ     rHDUu4DAyAc=
    ProgId    REG_SZ    Applications\Notepad++.exe

【问题讨论】:

  • 是的!现在我无法运行任何代码文件...
  • 这样对吗?
  • 好的,我明白了。我找到了 UserChoice 键。它包含 3 个项目:default、Hash、Progld。我应该为他们做些改变吗?
  • Hash REG_SZ rHDUu4DAyAc= ProgId REG_SZ Applications\notepad++.exe
  • 在控制面板中打开默认程序对话框。选择将文件类型或协议与程序相关联的选项。滚动到“.py”并双击它。选择上面有 Python 标志的“Python”条目,如果有多个,最好选择上面有火箭的那个。单击确定后,描述现在应该是“Python 文件”,在顶部应该有 Python 图标,旁边有“Python 软件基金会”。

标签: python windows python-3.x cmd


【解决方案1】:

这是不正常的,因为当前打开 .py 文件是由 Notepad++ 文本编辑器而不是 py.exe 或 python.exe 处理的。要解决此问题,请首先打开“控制面板”中的“默认程序”对话框。选择将文件类型或协议与程序相关联的选项。滚动到“.py”并双击它。选择上面有 Python 标志的“Python”条目,如果有多个,最好选择上面有火箭的那个。单击确定后,描述现在应该是“Python 文件”,并且在顶部应该有 Python 图标,旁边有“Python Software Foundation”。

确认资源管理器的 .py 文件的 UserChoice 键中的 ProgId 值已更改为 Python.File。例如:

>reg query HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\UserChoice /v ProgId

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\UserChoice
    ProgId    REG_SZ    Python.File

最后验证Python.File 命令模板是否符合您的预期:

>reg query HKCR\Python.File\shell\open\command

HKEY_CLASSES_ROOT\Python.File\shell\open\command
    (Default)    REG_SZ    "C:\Windows\py.exe" "%L" %*

就我而言,我为所有用户安装了 py 启动器,这是 Python 3 安装的默认设置。模板中的"%L""%1" 是.py 脚本的完全限定路径,%* 是命令行参数。如果你必须解决这个问题,在 regedit 中最容易做到。最好在HKCU\Software\ClassesHKLM\Software\Classes 中编辑底层软件类,而不是在HKCR 组合视图中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-03
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多