1. 現(xiàn)象
不知道從何時(shí)開始单刁,在cmd中輸入python突然就無法正常允許python命令了符欠,而是自動(dòng)打開了微軟的應(yīng)用商店署辉。
cmd.png
store.png
一開始以為是沒有把python加入的PATH路徑评矩,檢查后發(fā)現(xiàn)并不是饺藤。
Path.png
2. 分析
第一反應(yīng)是cmd從PATH查找可執(zhí)行程序的邏輯應(yīng)該是沒變的,系統(tǒng)默默在PATH前面做了攔截或者在PATH中加了東西干旧。
檢查后發(fā)現(xiàn)%USERPROFILE%\AppData\Local\Microsoft\WindowsApps
下居然也包含一個(gè)python.exe
渠欺。嘗試將這個(gè)值移到最后,重新啟動(dòng)cmd并執(zhí)行python后發(fā)現(xiàn)問題就解決了椎眯。
new_path.png
搜索了下網(wǎng)上的文章發(fā)現(xiàn)Win10 19年的更新里加了一個(gè)管理應(yīng)用執(zhí)行別名
挠将,別名的實(shí)現(xiàn)原理就是在%USERPROFILE%\AppData\Local\Microsoft\WindowsApps
放一個(gè)殼,實(shí)際應(yīng)用的啟動(dòng)都通過這個(gè)殼代理编整,實(shí)現(xiàn)原理和pyevn十分類似捐名。
我們可以打開管理應(yīng)用執(zhí)行別名
將對(duì)應(yīng)功能關(guān)閉,也能繼續(xù)正常使用python
alias.png