當(dāng)我們使用virtualenv 創(chuàng)建了一個(gè)虛擬環(huán)境的時(shí)候。
接著進(jìn)入的虛擬環(huán)境里面,使用創(chuàng)建一個(gè)運(yùn)行python文件
import tkinter
top = tkinter.Tk()
tkinter.mainloop()
可以運(yùn)行成功
這時(shí)候有趣的一點(diǎn)開(kāi)始了。
我們刪除掉本身系統(tǒng)里安裝了的python程序本身。
接著繼續(xù)在虛擬環(huán)境里面運(yùn)行這個(gè)py文件
會(huì)彈出

是的。并不是失敗,而是找不到tkinter模塊
從這里我們可以判斷出,virtualenv 直接把python的解釋器搞了個(gè)副本進(jìn)文件里面
但是內(nèi)置庫(kù)是并沒(méi)有安裝到里面來(lái)的。
然后這個(gè)內(nèi)置的解釋器才32MB
由此出現(xiàn)了一個(gè)問(wèn)題python本身到底是依賴什么。
我曾經(jīng)思考python環(huán)境到底是什么?
今天我終于得到了答案。
python本身并沒(méi)有環(huán)境依賴
依賴的僅僅是解釋器而已
python是一個(gè)解釋性語(yǔ)言。
僅僅是依賴于解釋器的一種語(yǔ)言。
這點(diǎn)是貫穿了python的本質(zhì)性的原理。
哪怕再深入,也很少很少有超脫于以上的。
脫離環(huán)境本身就是一個(gè)逆命題,因?yàn)榄h(huán)境本身就不存在。
2020年回頭來(lái)看
時(shí)間可以改變思考,不同時(shí)候?qū)τ谝粋€(gè)問(wèn)題的看法并不完全想通,上面的觀點(diǎn)并不完全不對(duì),python本身是作為一個(gè)跨平臺(tái)windows,liunx,mac 多種平臺(tái)的語(yǔ)言,其本身就是依賴于這些環(huán)境實(shí)現(xiàn)了各種系統(tǒng)的不同實(shí)現(xiàn),這是一點(diǎn),這估計(jì)才是我當(dāng)時(shí)感覺(jué)不存在環(huán)境依賴的問(wèn)題,應(yīng)該環(huán)境已經(jīng)是系統(tǒng)的默認(rèn)激活了。
另一點(diǎn)以上的找不到庫(kù) 同時(shí)也說(shuō)明了 其實(shí)python只依賴于 python解釋器本身跟 這功能依賴的第三方庫(kù)本身,這2點(diǎn)。
脫離環(huán)境本身確實(shí)是一個(gè)逆命題,因?yàn)槌R?guī)意義上的環(huán)境應(yīng)該是系統(tǒng)環(huán)境,而python不是,python應(yīng)該是解釋器+庫(kù)本身這2點(diǎn)。