http://xiaocong.github.io/blog/2013/06/18/customize-python-dev-environment-on-ubuntu/
Ubuntu 提供了一個良好的 Python 開發環境,但如果想使我們的開發效率最大化,還需要進行很多定製化的安裝和配置。下面的是我們團隊開發人員推薦的一個安裝和配置步驟,基於 Ubuntu 12.04 桌面版本標準安裝。
安裝 Python 發佈版本和 build 依賴包
建議至少安裝 Python 2.7/3.2 版本,畢竟 Python 2.X/3.X 還是有不少區別的。
1234 |
|
安裝 pip 和 virtualenv
pip
是 Python 的包管理工具,建議 Python 的包都用 pip 進行管理。virtualenv
是 Python 多版本管理的利器,不同版本的開發調試全靠它了。
1234 |
|
配置個人用 virtualenv
儘量在 virtualenv 下進行 Python 包的安裝。
12345 |
|
然後將下面的代碼增加到~/.bashrc
的最後面,缺省使用 virtualenv 來代替系統 Python 環境:
1234 |
|
安裝 git 和 gitflow
git
是使用 github 必備,目前最好的版本管理工具。
1 |
|
配置 git:
123456789101112 |
|
安裝 git-flow
,使用標準化 git 分支流程,參見:
1 |
|
安裝 bash-it
bash-it
可以美化你的 bash 環境,讓你更高效地使用控制檯終端,詳細信息參見bash-it github 網站
12 |
|
安裝的時候可以選擇所有的 alias/plugins/completion,如果自定義選擇,一定將virtualenv
, git
插件選擇上。
安裝完成後將下面的代碼附加到~/.bashrc
的後面:
123 |
|
bash-it
安裝完成後缺省使用 bobby 樣式(可以參見~/.bash_profile
裏定義的環境變量BASH_IT_THEME
),編輯~/.bash_it/themes/bobby/bobby.theme.bash
,在PS1
的定義裏增加${green}$(virtualenv_prompt)
,如下:
1 |
|
注:樣式定義參加文件~/.bash_profile
裏定義的環境變量BASH_IT_THEME
,你也將其值更改成其他~/.bash_it/themes
裏定義的樣式。
最後重啓終端,你將看到一個不一樣的bash
,支持顯示git
分支,virtualenv
,rvm
等。
安裝 Sublime Text 2
在瀏覽器進入 Sublime Text 2 官網,選擇適合的版本下載安裝。
安裝完成後還需要安裝Sublime Text 2
的Package Control
。安裝細節參見 Sublime Packages 安裝。
最後,按快捷鍵Ctrl+Shift+P
調出命令窗口,選擇Package Control: Install Package
,安裝 Python 開發常用的插件:
Auto Encoding for Python
BracketHighlighter
Git
Markdown Preview
Python Auto-Complete
SublimeLinter
SidebarEnhancements
SublimeCondeIntel
sublime-github
Dayle Rees Color Schemes
這裏推薦一下插件 sublime-github,能在 Sublime 裏查看,增加,修改GitHub Gist。如果你和團隊都使用 Github Gist 來存儲自己常用的代碼片段,這將非常方便大家去迅速查找和共享解決常見問題的代碼片段。
首先進入github 新建一個個人 API 訪問 token;
運行 Sublime,選擇菜單
Preferences
–>Package Settings
–>GitHub
–>Settings-Default
,將上面生成的token
複製到github_token
字段,保存。
之後你就可以按快捷鍵Ctrl+Shift+P
,選擇GitHub: Open Gist in Editor
,然後選擇你自己的 Gist 即可。
安裝並配置 Vim
有了 Sublime Text,大部分情況下都不需要 Vi 了,但的確有些時候進行很小的改動還是用 Vi 最方便。Ubuntu的缺省安裝應當已經包括了 Vim,如果沒有,運行下面命令安裝 Vim。
1 |
|
然後,參考Amix’s Vimrc來配置 Vim。
至此,所有的基本環境就已經配備完成,希望這些配置能對大家有所幫助,下面是配置好的界面截屏。