溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Windows 10中使用Python會(huì)出現(xiàn)哪些問(wèn)題

發(fā)布時(shí)間:2021-06-18 11:05:13 來(lái)源:億速云 閱讀:254 作者:chen 欄目:編程語(yǔ)言

這篇文章主要介紹“Windows 10中使用Python會(huì)出現(xiàn)哪些問(wèn)題”,在日常操作中,相信很多人在Windows 10中使用Python會(huì)出現(xiàn)哪些問(wèn)題問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Windows 10中使用Python會(huì)出現(xiàn)哪些問(wèn)題”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

最近在使用 Python 的時(shí)候發(fā)生了很奇怪的現(xiàn)象:從命令行執(zhí)行 python.exe 并不會(huì)進(jìn)入 REPL,似乎也沒(méi)有其他反應(yīng),然而稍等片刻,會(huì)看到系統(tǒng)彈出 Windows Store 頁(yè)面,并定位到 Python App 的詳情頁(yè)。

Windows 10中使用Python會(huì)出現(xiàn)哪些問(wèn)題

這個(gè)現(xiàn)象讓我很是迷惑了一下,還以為是 Python 運(yùn)行環(huán)境出了什么狀況,但很快反應(yīng)過(guò)來(lái),從現(xiàn)象看,應(yīng)該是 Windows 搞的鬼。

檢查一下路徑是否正常,果然:

\$ where python  C:\\Users\\yuhao\\AppData\\Local\\Microsoft\\WindowsApps\\python.exe

原理是系統(tǒng)自己搞了一個(gè) Python.exe。如果從在資源管理器打開(kāi)上述目錄的話,會(huì)看到這里只有孤零零的幾個(gè) .exe 文件,且圖標(biāo)也不正常,并不是一個(gè)真正的、完整的 Python 運(yùn)行環(huán)境。

Windows 10中使用Python會(huì)出現(xiàn)哪些問(wèn)題

那么問(wèn)題來(lái)了,Windows 搞這些沒(méi)有實(shí)際環(huán)境的 .exe 出來(lái),用意何在?

從網(wǎng)上找到一些信息,原來(lái)從 Windows 10 2019 五月更新以來(lái),微軟試圖把 Python 帶到 Windows,至于具體做法,則是把 Python3 放到了自家的商店里面。而上面看到的 python.exe 是一個(gè)“假的” Python,它的唯一作用在于當(dāng)系統(tǒng)沒(méi)有找到 Python 的時(shí)候,自動(dòng)跳轉(zhuǎn)到微軟商店去讓我們下載。

以下是微軟團(tuán)隊(duì)給出的說(shuō)法:Who put Python in the Windows 10 May 2019 Update?

可能是擔(dān)心這個(gè)新的功能導(dǎo)致一些兼容性方面的結(jié)果,微軟又在系統(tǒng)設(shè)置里面添加了一個(gè)比較隱晦的功能。比起在層層疊疊的設(shè)置界面里找到它,更簡(jiǎn)單的方法是直接輸入 app exec:

Windows 10中使用Python會(huì)出現(xiàn)哪些問(wèn)題

這樣會(huì)打開(kāi)設(shè)置的“應(yīng)用程序別名”界面。這里我們會(huì)看到系統(tǒng)認(rèn)為 python.exe 和 python3.exe 都只是安裝程序的別稱,不過(guò)我們也可以選擇把它們關(guān)閉。這樣當(dāng)我們?cè)龠\(yùn)行 python 的時(shí)候,就會(huì)顯示“找不到程序”的標(biāo)準(zhǔn)提示。實(shí)際上,Windows 是把上述 .exe 文件偷偷備份到其他地方了。

Windows 10中使用Python會(huì)出現(xiàn)哪些問(wèn)題

很多程序員(包括我)很可能都是按照標(biāo)準(zhǔn)的方式從官方下載安裝 Python 執(zhí)行文件。如果在安裝過(guò)程中選擇了“添加到系統(tǒng)環(huán)境變量”的話,那么標(biāo)準(zhǔn) Python 會(huì)注冊(cè)到系統(tǒng) PATH 變量,而前面所述的 WindowsApps 目錄則是 Windows 添加到用戶 PATH 變量的。按照 Windows 系統(tǒng)的規(guī)則,PATH 環(huán)境變量是系統(tǒng)設(shè)置先于用戶設(shè)置,所以如果安裝了標(biāo)準(zhǔn)版 Python 的話,系統(tǒng)應(yīng)該首先找到的是它,而不是應(yīng)用商店版的 Python。后來(lái)我發(fā)現(xiàn),之所以我的機(jī)器會(huì)出現(xiàn)上述問(wèn)題,是因?yàn)橄到y(tǒng)設(shè)置有一點(diǎn)語(yǔ)法錯(cuò)誤,修正以后再次測(cè)試,結(jié)果就正常了。

到此,我們已經(jīng)理解了 Windows 自帶的 Python 是怎么回事。微軟這樣做的初衷,應(yīng)該是希望普通用戶能更方便地用上 Python,這個(gè)想法無(wú)可厚非,但放到 Windows 應(yīng)用商店這個(gè)設(shè)計(jì)思路是否合理,我還是有一些懷疑的。畢竟微軟應(yīng)用商店一直以來(lái)名聲并不算太好,內(nèi)容少、功能欠缺、速度慢,時(shí)不時(shí)發(fā)生一些惱人的小問(wèn)題(比如 不知所云的 0x8000xxxx 錯(cuò)誤)。而“應(yīng)用程序別名”這個(gè)功能到底是解決了問(wèn)題還是帶來(lái)更多的困惑,我也持保留意見(jiàn)。

當(dāng)我在網(wǎng)上查找關(guān)于該問(wèn)題的信息時(shí),也發(fā)現(xiàn)有其他用戶同樣受到該問(wèn)題的困擾,比如:

  •  [Bug] Don't find python library from WindowsApps dir

  •  Microsoft Store installed python (3.7 - Windows 10) based virtualenvs cannot access pyd DLLs

目前,在 Windows 上面安裝 Python 已經(jīng)有很多不同的方式:

  •  通過(guò)官方網(wǎng)站下載安裝;

  •  通過(guò) Anaconda 集成軟件包;

  •  和 Visual Studio 一起安裝;

  •  通過(guò) chocolatey 之類的第三方包管理;

  •  通過(guò) WSL 安裝 Linux 版 Python;

  •  通過(guò) Windows Store 安裝;

說(shuō)實(shí)話,我認(rèn)為太多不同的來(lái)源渠道會(huì)讓環(huán)境問(wèn)題變得更復(fù)雜,增加出錯(cuò)的可能,并且容易迷惑初學(xué)者。對(duì)于大多數(shù)程序員來(lái)說(shuō),建議大家還是按照最基本的方式,從官方下載并安裝 Python。

到此,關(guān)于“Windows 10中使用Python會(huì)出現(xiàn)哪些問(wèn)題”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI