1. Python安裝
目前python有2個大版本,2和3,由於2和3語法有差別,現有的許多庫都是基於python2開發,本系列文章以python2為主。
1.1 重要概念
1、 動態語言
運行時綁定,變量在執行時才確定類型
變量相當於C++中的引用
可運行時修改
2、 一切都是對象
一切都是對象,包括數字、字符串、函數、列表甚至是類
1.2 Windows下的安裝
1、 訪問https://www.python.org/網站下載python安裝版本,我使用的是2.7版本,可以下載一個名為python-2.7.8.msi的文件,其中2.7.8指最新的版本號
2、 在windows中雙擊下載的文件,根據安裝向導進行安裝即可
3、 安裝完成后配置環境變量,在path中添加D:\Program Files (x86)\Python27和D:\Program Files (x86)\Python27\Scripts(在安裝setup-tools后)
4、 假設安裝一切正常,可以在開始菜單中找到Python-IDLE(Python GUI),打開即可看到以下界面,輸入對應內容測試安裝即可

1.3 Linux下升級
CentOS 6.3自帶的Python版本為2.6,可以使用“python –V”查看python的版本,首先需要升級到2.7版本。由於舊版本的Python已被深度依賴,所以不能卸載原有的Python,只能全新安裝。以下操作請使用root操作
1、 下載Pyhon,選擇下載Gzipped source tar ball (2.7.6) (sig),網址https://www.python.org/download/releases/2.7.6
2、 解壓安裝,命令如下
tar –xvf Python-2.7.6.tgz
cd Python-2.7.6
./configure --prefix=/usr/local/python2.7
make
make install
3、 創建鏈接來使系統默認python變為python2.7
ln -fs /usr/local/python2.7/bin/python2.7 /usr/bin/python
4、 查看Python版本
python –V
5、 修改yum配置(否則yum無法正常運行)
vi /usr/bin/yum
將第一行的#!/usr/bin/python修改為系統原有的python版本地址#!/usr/bin/python2.6,至此CentOS6.3系統Python已成功升級至2.7.6版本。
2. 開發環境Pycharm
Python有很多開發環境,自帶的IDLE、wingIDE、sublime text等,本文介紹的是Pycharm,pycharm可以跨平台,在macos和windows下面都可以用。
1、 首先到Pycharm下載版本進行安裝,我使用的是free版本,推薦購買正式版本,下載完成根據安裝向導安裝即可
2、 首次使用點擊Create New Project。

3、 輸入項目名、路徑、選擇python解釋器。如果沒有出現python解釋器,點擊Interpreter后面的按鈕,然后選擇本地安裝的python的的exe即可。

4、 點擊Ok,就會創建一個新項目,就可以開始你的編程學習之旅了
5、 右鍵單擊剛建好的helloWord項目,選擇New --> Python File
6、 PyCharm的默認編輯界面很怪,會自動生成一行 __author__ = “作者” 的頭,輸入code:print "Hello word!" ,點擊菜單中的Run即可
3. Python其它庫的安裝
說明:1.所有另外安裝的第三方庫,如果不特指定安裝后庫目錄的話,將默認保存到 %PYTHON_HOME%\Lib\site-packages下;2.python大小寫敏感,對模塊名也是。3.Crypto可以提供常見的加解密算法,如:RSA、RC4、DSA、DES
3.1 安裝setuptools
1、 官網建議使用ez.setup.py來安裝,首先先下載ez.setup.py,https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
2、 下載完成后cmd進入python的安裝目錄,執行操作python.exe ez_setup.py
下載完畢最新版本之后,系統會自動安裝setuptools,安裝完畢之后,會在python安裝目錄的scripts下有一個easy_install.exe可執行文件。

3.2 安裝Pip
1、 Windows下安裝
在命令行(cmd)下進入python安裝目錄的script路徑下執行easy_install.exe pip即可,安裝完成后在scripts下就可以看到pip.exe了

2、 Linux下安裝
Pip是一個安裝和管理python包的工具。安裝方法如下(網址http://www.pip-installer.org/en/latest/installing.html):
(1)下載pip,地址https://raw.github.com/pypa/pip/master/contrib/get-pip.py
(2)執行安裝命令
python get-pip.py
(3)創建連接(否則會報錯提示“命令不存在”)
ln -s /usr/local/python2.7/bin/pip /usr/bin/pip
備注:如果連接時提示錯誤“ln: creating symbolic link `/usr/bin/pip': File exists”則需要手動先刪除pip文件,再重新進行軟連接操作即可,操作完成后可使用ll進行連接檢查

3.3 windows下安裝SSH模塊(paramiko+pycrypto+ecdsa)
1、 安裝pyCrypto
安裝這個比較麻煩,需要本地編譯,要裝vs或gcc還有一堆配置,還不一定能編譯成功。建議直接下載已編譯版: http://www.voidspace.org.uk/python/modules.shtml#pycrypto直接下載並安裝既可。
2、 安裝ecdsa
執行命令時,提示找不到ecdsa模塊。下載:https://pypi.python.org/pypi/ecdsa/0.9 ,解壓到一個目錄,目錄中有一個setup.py。windows下直接在剛才解壓后的目錄執行:python setup.py install
3、 安裝paramiko
與安裝ecdsa類型, 下載: https://github.com/paramiko/paramiko#,安裝步驟同ecdsa,解壓到一個目錄,目錄中有一個setup.py。直接在剛才解壓后的目錄執行:python setup.py install
3.4 安裝fabric
1、 Windows下安裝
在命令行(cmd)下執行命令pip install fabric,提示OK,可能會遇到問題unable to find vcvarsall.bat,根據下面的解決方法解決該問題后,刪除已經安裝的文件重新執行命令,“Python\Lib\site-packages”文件夾下的文件夾fabric和Fabric-1.10.0-py2.7.egg-info。

2、 Linux下安裝
(1)執行安裝命令
pip install fabric
(2)創建連接(否則會報錯提示“命令不存在”)
ln -s /usr/local/python2.7/bin/fab /usr/bin/fab
說明:python開發過程中會使用到很多lib,安裝方法與fabric一致,使用Pip安裝即可
4. 常見問題
4.1 提示python不是內部或外部命令,也不是可運行的程序或批處理文件。
因為沒有配置python的環境變量導致的,配置即可
4.2 擴展問題unable to find vcvarsall.bat
使用Pip安裝某個庫時報unable to find vcvarsall.bat,可以在python安裝路徑檢索出msvc9compiler.py文件,修改MSVCCompiler函數vc_env = query_vcvarsall(VERSION, plat_spec)為:vc_env = query_vcvarsall(8.0, plat_spec),或者在函數find_vcvarsall(version)前面加上version=8.0
說明:這個問題即是在注冊表中找到VS的目錄,再去VS目錄下找vcvarsall.bat,但是python里面默認的是vc9.0,也就是vs2008,所以它在注冊表里面找不到鍵值返回None,
productdir = Reg.get_value(r"%s/Setup/VC" % vsbase,"productdir")
vsbase值為:Software/Microsoft/VisualStudio/9.0
msvc9compiler.py中,def find_vcvarsall(version) 用於查找vcvarsall.bat version就是版本號,實際上是9.0
vc_env = query_vcvarsall(VERSION, plat_spec),VERSION = get_build_version() 因為python32自己是由vc9.0構建的所以VERSION是9.0
4.3 fab執行報錯pkg_resources.DistributionNotFound: ecdsa>=0.11
需要安裝ssh模塊
4.4 關於Python報錯:SyntaxError: Non-ASCII character '\xe5'
問題出現原因:Python默認是以ASCII作為編碼方式的,如果在自己的Python源碼中包含了中文 等其他字符,就會報錯。
解決方法:在在源碼的第一行添加以下語句,# -*- coding: UTF-8 -*- 或者 #coding=utf-8(注:此語句一定要添加在源代碼的第一行)
4.5 編譯報錯IndentationError: expected an indented block
Python語言是一款對縮進非常敏感的語言,最常見的情況是tab和空格的混用會導致錯誤,或者縮進不對,而這是用肉眼無法分別的。
在編譯時會出現這樣的錯IndentationError:expected an indented block說明此處需要縮進,你只要在出現錯誤的那一行,按空格或Tab(但不能混用)鍵縮進就行。
5. 常見命令介紹
多行注釋:選中需要注釋的行,CTRL+/
取消多行注釋:選中需要取消注釋的行,CTRL+/
查看方法,按住Ctrl,直接點擊函數名即可,可以看到函數定義參數的類型
6. 參考資料
http://blog.csdn.net/chenggong2dm/article/details/9365437
http://blog.csdn.net/chenggong2dm/article/details/9366805
http://blog.csdn.net/ren911/article/details/6448696
http://chenpeng.info/html/2551
