Python源代碼構(gòu)架的三大主要結(jié)構(gòu)
在***的層次上,Python的整體架構(gòu)可以分為三個(gè)主要的部分,。源代碼。是Python源代碼提供的大量的模塊,庫以及用戶自定義的模塊。比如在執(zhí)行import os時(shí),這個(gè)os就是Python內(nèi)建的模塊,當(dāng)然用戶還可以通過自定義模塊來擴(kuò)展Python系統(tǒng)。在本系列文章中,我們不會(huì)對(duì)這一部分進(jìn)行過多的考察。
Python源代碼
1 Python總體架構(gòu)
在***的層次上,Python的整體架構(gòu)可以分為四個(gè)主要的部分,。源代碼。是Python源代碼提供的大量的模塊,庫以及用戶自定義的模塊。比如在執(zhí)行import os時(shí),這個(gè)os就是Python內(nèi)建的模塊,當(dāng)然用戶還可以通過自定義模塊來擴(kuò)展Python系統(tǒng)。在本系列文章中,我們不會(huì)對(duì)這一部分進(jìn)行過多的考察。
在圖的右邊,是Python的運(yùn)行時(shí)環(huán)境,包括對(duì)象/類型系統(tǒng)(Object/Type structures),內(nèi)存分配器(Memory Allocator)和運(yùn)行時(shí)狀態(tài)(Current State of Python)。運(yùn)行時(shí)狀態(tài)維護(hù)了解釋器在執(zhí)行字節(jié)碼時(shí)在不同的狀態(tài)之間切換的動(dòng)作,我們可以將它視為一個(gè)巨大而復(fù)雜的有窮狀態(tài)機(jī)。內(nèi)存分配器則全權(quán)負(fù)責(zé)Python中創(chuàng)建對(duì)象時(shí)對(duì)內(nèi)存的申請(qǐng)工作,實(shí)際上它就是Python運(yùn)行時(shí)與C中malloc的一層接口。而對(duì)象/類型系統(tǒng)則包含了Python中存在的各種內(nèi)建對(duì)象,比如整數(shù),list和dict等等
2 Python源代碼的組織中國有句老話,巧婦難為無米之炊。要分析Python源碼,首先當(dāng)然要獲得Python源碼。Include :該目錄下包含了Python提供的所有頭文件,如果用戶需要自己用C或C++來編寫自定義模塊擴(kuò)展Python,那么就需要用到這里提供的頭文件。
Lib :該目錄包含了Python自帶的所有標(biāo)準(zhǔn)庫,Lib中的庫都是用Python語言編寫的。 #t#
3.編譯Python
首先,我們需要激活VS2003的配置對(duì)話框
在配置對(duì)話框中,首先要做的就是更改Startup Project,Python2.4.1中默認(rèn)設(shè)置的是_bsddb,我們需要將其改為Python源代碼。
由于我們剖析的只是Python的核心部分,不會(huì)涉及到工程中的一些標(biāo)準(zhǔn)庫和其他的模塊,所以我們需要將它們從編譯的列表中刪除。點(diǎn)擊配置對(duì)話框左邊列表框中的“Configuration Properties”后,會(huì)出現(xiàn)當(dāng)前配置為需要編譯的子工程,取消多余的子工程的選中狀態(tài),只保留pythoncore和python源代碼。的選中狀態(tài)。
好了,現(xiàn)在再編譯,一切都會(huì)順利完成了。