【问题标题】:How to fix "Can't find a default Python" error如何修复“找不到默认 Python”错误
【发布时间】:2019-09-03 05:53:45
【问题描述】:

我在 Windows 服务器(64 位)中使用 python,它是由另一个用户在他自己的目录中安装的 C:\user\userx\AppData\Local\Programs\Python\Python36

所有其他用户(不包括我)都能够在此服务器上运行 Python 文件。运行 Python 程序时出现以下错误:

C:\Users\user x\AppData\Local\Programs\Python\Python36>test.py
launcher build: 32bit
launcher executable: Console
File 'C:\Users\my user\AppData\Local\py.ini' non-existent
File 'C:\Windows\py.ini' non-existent
Called with command line: "C:\Users\user x\AppData\Local\Programs\Python\Python
36\test.py"
maybe_handle_shebang: read 12 bytes
maybe_handle_shebang: BOM not found, using UTF-8
locating Pythons in 64bit registry
locate_pythons_for_key: unable to open PythonCore key in HKCU
locate_pythons_for_key: unable to open PythonCore key in HKLM
locating Pythons in native registry
locate_pythons_for_key: unable to open PythonCore key in HKCU
locate_pythons_for_key: unable to open PythonCore key in HKLM
found no configured value for 'python'
search for default Python found no interpreter
Can't find a default Python.

我尝试在命令行中使用set pylaunch_debug=1 运行我的代码,它显示以下错误。

【问题讨论】:

  • 需要设置Path变量
  • 编辑您的系统环境变量并将“C:\user\userx\AppData\Local\Programs\Python\Python36”附加到它
  • 我也已经设置了路径变量。
  • 尝试在cmd中运行python解释器
  • 在 cmd python test.py 中有效,但 test.py 无效。但我想解决它以便能够使用 IDE。

标签: python python-3.x python-3.6


【解决方案1】:

将正确的文件组与 .py 脚本相关联:

assoc .py=Python.File

将所有 Python 文件重定向到新的可执行文件:

ftype Python.File="C:\Path\to\pythonw.exe %1 %*"

【讨论】:

  • 对此做一个小小的修正:我发现我只需要在路径周围加上引号,而不是在参数周围!所以像 ftype Python.File="C:\Path\to\pythonw.exe" %1 %*
  • 在 Windows 中,您可能需要以管理员身份运行命令提示符来设置关联。
【解决方案2】:

“找不到默认的 Python”不是来自 windows 本身,而是来自 python 启动器。

ftype(如在其他一些响应中)直接重置为特定的 python 安装应该会掩盖错误,但会绕过 Python 启动器。另一种方法是解决实际问题。也许比简单地让它消失更复杂,但掩盖它意味着一个关键功能,python 启动器,然后被禁用。

如果出现此错误,请输入检查 ftype

 ftype Python.File

不设置新值。

正常值应该是Python.File="C:\windows\py.exe" "%L" %*

Py.exePython launcher。这个启动器检查 python 文件和文件顶部的“shebang”行,指定将使用哪个版本的 python。

Py.exe 是报告“找不到默认 python”的程序。将ftype 重置为直接加载python 将绕过错误,但会禁用py.exe 的中间步骤,该步骤应该为文件选择正确的python 版本。如果您可以很好地禁用 py.exe,那没关系,但如果您想修复 py.exe,请尝试像这样设置环境变量 PYLAUNCH_DEBUG(就像原始海报所做的那样):

set PYLAUNCH_DEBUG=1

然后再试一次(或直接输入 py 作为命令)以获取有关失败原因的更多信息。

对我来说,注册表项

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.7\InstallPath

丢失并添加该密钥解决了问题。您可以编辑注册表项并将上述注册表项设置为具有所需路径的相关 python 版本,或添加 py.ini 文件。 py.ini 的说明在这里有点长,但如果有人愿意,我会添加一个链接。

绕过 python 启动器有两个问题。首先,如果添加新版本,问题可能会返回,其次,程序指定正确 python 版本的能力被禁用。

【讨论】:

  • 应该是最好的答案,只更正一个!
【解决方案3】:

我找到了解决办法:

在 cmd 中设置全局变量如下解决了问题

C:> ftype Python="C:\Users\user x\AppData\Local\Programs\Python\Python36\python.exe %1 %*"

【讨论】:

  • 找不到文件类型“Python”或没有与之关联的打开命令。
【解决方案4】:

通过在系统变量中编辑 PATH 对我有用:

添加 python 路径:“........\Python36”

并在运行代码时在cmd上写入,在代码的文件路径前加上“python”字样:

python code_file_name.py

【讨论】:

    【解决方案5】:

    阅读#innov8 后,在注册表中进行的一些额外查询显示,除了完整的 HKCU\Software\Python 键之外,还有一个“空”的 HKLM\Software\Python 键,它没有子键或值。

    删除有问题的 HKLM 密钥解决了我的启动器问题。

    【讨论】:

      【解决方案6】:

      将文件设置为默认使用Python打开,如果它不起作用,则将其设置为其他python版本。

      另一种解决方案是在您的 cmd 中写入 python yourfilename.py

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-08
        • 2020-07-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多