最近使用python開發一些小玩意,發現python實在很符合個人理念:輕量級,功能強大,開放。html
python是一種腳本語言,不像java那樣須要沉重的編譯過程。這使得python更顯得輕巧靈便,能夠在任意地方寫代碼並執行。雖然jre7中添加了動態編譯java代碼的功能,但仍是顯得很沉重的感受。自帶了很強大的類型系統map,list,set,並且相對於java減小了不少泛型的約束。再使用java的這些類型時會發現不添加泛型就會報警高,要使用不一樣類型的集合還必須寫map<object>這樣的代碼,這點也體現了弱類型語言的優點。java
python有很強大的內置類型,和異常強大的標準庫。像map,list這類的數據結構直接是語言內部類型,這樣在使用這些類型時更加方便,異常強大的標準庫中甚至有小而功能完善的webserver(SimpleHTTPServer),搜索協議文件解析(robots.txt)。因此,基本的需求均可以在python內部找到解決辦法。python
python是開源的,而且有開放的社區。並且python支持多種方式的使用:腳本,C擴展,內嵌式,嵌入式。這是對各類使用方式的開發啊。我能夠自行開發一個python shell來完成啓動執行python的目的,甚至能夠修改python的sanner和parser來設計本身的編程語言,這就厲害了啊。web
可是python仍是有點不和個人意思的地方。好比python標準庫裏裏面的gui,pip安裝庫方式,python程序發行方式都不太和我心意,因此這裏想研究一下python,看看python是否能適應一下個人需求。shell
需求:編程
1.換掉tcl/tk。修改默認gui編程方式到其餘的gui上。
2.適應獨立發佈的方式進行庫安裝。即:在發佈python代碼時能夠直接連帶使用的庫一塊兒發佈。
3.發佈軟件時自帶運行環境,不須要使用發佈的軟件時還須要安裝python。(雖然有相似於py2exe的方式解決這兩個問題,可是我認爲不能達到輕巧,升級方便的目的)數據結構
前期調查:編程語言
原先想使用cygwin,mingw的方式進行編譯python,但發現編譯有不少問題放棄這種方式,改用微軟的編譯器進行編譯。ui
編譯器:
爲何微軟不單獨發行編譯器和連接器?
神同樣存在的Microsoft Visual C++ Compiler for Python 2.7
Announcing Visual C++ Build Tools 2015設計
msbuild:
Microsoft Build Tools 2015
python resource:
python-2.7.11