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