python不是內(nèi)部命令或外部命令,也不是可運(yùn)行的程序或批處理文件,這個(gè)提示好多人遇見(jiàn)過(guò),但是網(wǎng)上好多回答都說(shuō)只要配一下環(huán)境變量就好了,并沒(méi)人講過(guò)這個(gè)提示本身是什么意思,還有系統(tǒng)在哪種情況下會(huì)有這樣提示?這些都忽略了,這次是python給出的提示,下次java 或者其他程序,或者在linux系統(tǒng)有這樣相同的提示,你可能還得去百度; 先看提示本身,不是內(nèi)部命令或外部命令是啥意思? 從字面我們可以知道,命令是分為內(nèi)部命令和外部命令的,在linux中,內(nèi)部命令是指shell自帶的命令,相當(dāng)于是系統(tǒng)內(nèi)置的命令,而且系統(tǒng)已經(jīng)為這些命令配置好了環(huán)境變量,比如cd命令,或windows下的ping, ipconfig等可以直接使用;而外部命令是指用戶自己額外安裝的命令,比如python,java等,系統(tǒng)并不知道你將來(lái)會(huì)安裝什么程序(也叫命令),安裝在什么路徑下,所以你安裝python后在cmd下直接輸入python,會(huì)給出'不是內(nèi)部命令或外部命令’的提示,這時(shí)需要你告訴系統(tǒng),將要運(yùn)行的python程序的安裝路徑是在D:\Python3.6\Python36\,告訴了以后,每當(dāng)你在cmd窗口下只輸一個(gè)python,那么系統(tǒng)就會(huì)去D:\Python3.6\Python36\目錄找到python.exe并運(yùn)行它; 理解了上面的原理,那還有個(gè)什么問(wèn)題,你以什么方式告訴系統(tǒng),你新安裝的程序的所以路徑是什么呢?這個(gè)不同的操作系統(tǒng)具體的操作是不一樣的,先以win10為例,win10可以在控制面板\系統(tǒng)和安全\系統(tǒng)\高級(jí)系統(tǒng)設(shè)置\高級(jí)\環(huán)境變量中設(shè)置,或者使用其他簡(jiǎn)單的命令在命令行設(shè)置; linux下的環(huán)境變量分為3種,分別為系統(tǒng)級(jí)別的環(huán)境變量、用戶級(jí)別的環(huán)境變量和shell級(jí)別的環(huán)境變量,其實(shí)區(qū)別就是環(huán)境變量的使用范圍,具體可以看我的另一篇 總結(jié),出現(xiàn)不是內(nèi)部命令或外部命令的提示,大概率都是環(huán)境變量出問(wèn)題,從環(huán)境變量入手解決,環(huán)境變量就是你安裝的程序的路徑,如果不想設(shè)置環(huán)境變量,其實(shí)也可以給它補(bǔ)全路徑后再執(zhí)行,也是可以的,只要保證系統(tǒng)可以從這個(gè)路徑找到這個(gè)程序即可 以下為補(bǔ)充內(nèi)容,想了解的讀者可以看: 補(bǔ)充1. win10系統(tǒng)的內(nèi)部命令,也有配環(huán)境變量嗎? 答案是有,比如常用的ping 命令,ipconfig命令,如下圖,可以先使用where 命令看一下ping和ipconfig分別安裝在哪里 然后,我們?nèi)ピ撀窂较抡乙幌掠袥](méi)有這2個(gè)程序,如圖是有的;
最后,我們?nèi)ヲ?yàn)證一下系統(tǒng)中有沒(méi)有這2個(gè)命令的環(huán)境變量,可以看到是有system32這個(gè)路徑的(為什么是不C:\Windows\System32\呢,因?yàn)榘袰:\Windows\用變量%SystemRoot%代替了),也就是說(shuō),當(dāng)你輸入ping時(shí),系統(tǒng)會(huì)在環(huán)境變量中的所有的路徑中去找這個(gè)PING.exe程序,最后在C:\Windows\System32\目錄下找到了PING.exe程序 |
|