Python啟動器Py報錯:Can't find a default Python


背景

剛才修改了Python目錄名,重新添加了環境變量,命令行可以正常執行python。
打開Vim開始編輯文件,發現一輸入或剛輸入幾個字符就閃退了。

解決

重新打開禁用了插件加載,運行正常,逐個開啟檢查發現Ultisnip開啟時,導致這種情況,:PlugStatus (Vim-Plug管理器命令)檢查插件狀態,文件完好,突然想到Ultisnip依賴Python執行環境,可能是改到路徑導致的錯誤。

在控制台執行:
py 顯示:Can't find a default Python
py --list 來列出安裝的python,顯示無法找到已安裝的python
Installed Pythons found by py Launcher for Windows
No Installed Pythons Found!

執行:py --help,發現py並沒有給出直接指明解釋器的方法

經過查詢,發現py.exe是用於做啟動真實python解釋器的中間轉換器,會從外部讀取一些信息來確定調用哪個版本的python解釋器,例如:可以傳入版本號作為啟動參數;讀取文件開始的前幾行shebang注釋:#!/usr/bin/python3

猜測py.exe在win上讀取了注冊表。

查詢到有人修改了python的注冊表項:
計算機\HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\3.9\InstallPath
該項下有一個字段:ExecutablePath,修改為解釋器路徑:D:\software\Python\Python3.9\python.exe

重新執行:py
成功進入Python 3.9.1執行環境

執行:py --list
Installed Pythons found by py Launcher for Windows -3.9-64 *
成功列出了安裝的Python

由此確定py.exe在win上是通過讀取注冊表的...\Python...\InstallPath來尋找Python解釋器的

注意:在修改Python安裝目錄后,同時要修改...\Python項下所有與目錄關聯的字段值,以確保其他功能可以正常使用。

參考:
https://stackoverflow.com/questions/57765741/how-to-fix-cant-find-a-default-python-error/59595474#59595474
https://docs.python.org/3/using/windows.html#launcher


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM