設定新的開發機器可能是一個臨時的、手動的且耗時的過程。 dev-setup
旨在透過易於理解的指令和點檔案/腳本來簡化流程,以自動執行以下設定:
dev-setup
旨在更多地成為各種開發人員工具的有組織的參考。
您並不意味著要安裝所有內容。
如果您對自動化感興趣, dev-setup
提供了可自訂的設定腳本。對於開發人員來說,確實沒有一刀切的解決方案,因此我們鼓勵您進行調整以滿足您的需求。
致謝:這個 repo 建立在 Mathias Bynens 和 Nicolas Hery 的出色工作之上。
Vagrant 和 Docker 都是很棒的工具,都是這個儲存庫所設定的。我發現 Vagrant 可以很好地確保開發與測試和生產層相符。我只是開始在業餘專案中使用 Docker,它看起來非常有前途。然而,對於Mac用戶來說,Docker和Vagrant都依賴虛擬機,它們都有各自的考量/優點/缺點。
Boxen 是一個很酷的解決方案,儘管有些人可能會發現它更適合「更成熟的公司或 devops 團隊」。我看到一些關於困難的討論,因為它是在幕後使用 Puppet 的。
此儲存庫採用更輕量級的自動化方法,使用Homebrew、Homebrew Cask 和 shell 腳本的組合來進行基本的系統設定。它還為每個開發人員應用程式或工具提供易於理解的安裝、配置和使用說明。
腳本在 OS X 10.10 Yosemite 和 10.11 El Capitan 上測試。
~
$ git clone https://github.com/donnemartin/dev-setup.git && cd dev-setup
由於您可能不想安裝每個部分,因此.dots
腳本支援命令列參數以僅運行指定的部分。只需傳入您要安裝的腳本即可。以下是一些範例。
如需更多自訂,您可以複製或分叉儲存庫並調整.dots
腳本及其關聯元件以滿足您的需求。
運行全部:
$ ./.dots all
運行bootstrap.sh
、 osxprep.sh
、 brew.sh
和osx.sh
:
$ ./.dots bootstrap osxprep brew osx
運行bootstrap.sh
、 osxprep.sh
、 brew.sh
和osx.sh
、 pydata.sh
、 aws.sh
和datastores.sh
:
$ ./.dots bootstrap osxprep brew osx pydata aws datastores
$ curl -O https://raw.githubusercontent.com/donnemartin/dev-setup/master/.dots && ./.dots [Add ARGS Here]
~
筆記:
.dots
最初會提示您輸入密碼。.dots
可能會要求您在安裝的某些階段重新輸入密碼。.dots
即可從上次中斷的位置恢復。.dots
運行brew.sh
,這需要一段時間才能完成,因為一些公式需要從來源安裝。.dots
完成後,請務必重新啟動電腦以使所有更新生效。我鼓勵您通讀第 1 部分,以便您更了解每個安裝腳本的用途。以下討論更詳細地描述了執行 .dots 腳本時執行的內容。
bootstrap.sh
腳本會將 dev-setup 儲存庫同步到您的本機主目錄。這將包括 Vim、bash、curl、git、製表符完成、別名、許多實用函數等的自訂。
首先,分叉或克隆儲存庫。 bootstrap.sh
腳本將拉入最新版本並將檔案複製到您的主資料夾~
:
$ source bootstrap.sh
要稍後更新,只需再次運行該命令即可。
或者,在避免確認提示的同時進行更新:
$ set -- -f; source bootstrap.sh
若要在不使用 Git 的情況下將 dev-setup 同步到本機主目錄,請執行下列命令:
$ cd ~; curl -#L https://github.com/donnemartin/dev-setup/tarball/master | tar -xzv --strip-components 1 --exclude={README.md,bootstrap.sh,LICENSE}
要稍後更新,只需再次運行該命令即可。
如果~/.path
存在,則在進行任何功能測試(例如檢測正在使用哪個版本的ls
之前,它將與其他檔案一起取得。
下面是一個範例~/.path
文件,它將/usr/local/bin
加入$PATH
:
export PATH= " /usr/local/bin: $PATH "
如果~/.extra
存在,它將與其他文件一起取得。您可以使用它來添加一些自訂命令,而無需分叉整個儲存庫,或者添加您不想提交到公共儲存庫的命令。
我的~/.extra
看起來像這樣:
# Git credentials
GIT_AUTHOR_NAME= " Donne Martin "
GIT_COMMITTER_NAME= " $GIT_AUTHOR_NAME "
git config --global user.name " $GIT_AUTHOR_NAME "
GIT_AUTHOR_EMAIL= " [email protected] "
GIT_COMMITTER_EMAIL= " $GIT_AUTHOR_EMAIL "
git config --global user.email " $GIT_AUTHOR_EMAIL "
# Pip should only run if there is a virtualenv currently activated
export PIP_REQUIRE_VIRTUALENV=true
# Install or upgrade a global package
# Usage: gpip install –upgrade pip setuptools virtualenv
gpip (){
PIP_REQUIRE_VIRTUALENV= " " pip " $@ "
}
您也可以使用~/.extra
覆蓋 dev-setup 儲存庫中的設定、函數和別名,儘管最好分叉 dev-setup 儲存庫。
執行osxprep.sh
腳本:
$ ./osxprep.sh
osxprep.sh
將首先安裝所有更新。如果需要重新啟動,只需再次執行腳本即可。安裝所有更新後, osxprep.sh
將安裝 Xcode 命令列工具。
如果您想走手動路線,您也可以透過執行“App Store”,選擇“更新”圖標,然後更新作業系統和已安裝的應用程式來安裝所有更新。
許多工具(例如 Homebrew)可以工作之前的一個重要依賴項是Xcode 的命令列工具。其中包括像 gcc 這樣的編譯器,它允許您從原始程式碼建置。
如果您執行的是OS X 10.9 Mavericks 或更高版本,那麼您可以直接從命令列安裝 Xcode 命令列工具:
$ xcode-select --install
注意: osxprep.sh
腳本執行此命令。
運行上面的命令將顯示一個對話框,您可以在其中執行以下任一操作:
如果您使用的是 10.8 或更低版本,則需要造訪 http://developer.apple.com/downloads,並使用您的 Apple ID(與您用於 iTunes 和應用程式購買的 ID 相同)登入。不幸的是,迎接您的是一份相當煩人的問卷。所有問題都是必填問題,因此請隨意回答。
到達下載頁面後,搜尋“命令列工具”,然後下載適用於 Xcode 的最新命令列工具 (OS X Mountain Lion) 。下載完成後開啟.dmg文件,然後雙擊.mpkg安裝程式以啟動安裝。完成後,您可以在 Finder 中卸載磁碟。
設定新 Mac 時,您可能需要安裝 Homebrew,這是一個套件管理器,可簡化應用程式或程式庫的安裝和更新。
由brew.sh
腳本安裝的一些應用程式包括:Chrome、Firefox、Sublime Text、Atom、Dropbox、Evernote、Skype、Slack、Alfred、VirtualBox、Vagrant、Docker 等。參考帶註釋的brew.sh原始檔並對其進行調整以滿足您的需求。
執行brew.sh
腳本:
$ ./brew.sh
brew.sh
腳本需要一段時間才能完成,因為某些公式需要從原始碼安裝。
為了使您的終端自訂完全生效,請退出並重新啟動終端
設定新 Mac 時,您可能需要設定適合開發人員的 OS X 預設值。 osx.sh
腳本也配置常見的第三方應用程序,例如 Sublime Text 和 Chrome。
注意:我強烈建議您閱讀註釋的 osx.sh 原始檔案並根據您的個人喜好調整任何設定。腳本預設值供您自訂。例如,如果您沒有執行 SSD,您可能需要變更 SSD 部分中列出的一些設定。
運行osx.sh
腳本:
$ ./osx.sh
為了使您的終端自訂完全生效,請退出並重新啟動終端。
若要設定開發環境來使用 Python 和資料分析而不依賴更重量級的 Anaconda 發行版,請執行pydata.sh
腳本:
$ ./pydata.sh
這將安裝 Virtualenv 和 Virtualenvwrapper。然後,它將設定兩個虛擬環境,其中載入了在 Python 2 和 Python 3 中處理資料所需的套件。
若要切換到 Python 2 虛擬環境,請執行下列 Virtualenvwrapper 指令:
$ workon py2-data
若要切換到 Python 3 虛擬環境,請執行下列 Virtualenvwrapper 命令:
$ workon py3-data
然後開始使用已安裝的軟體包,例如:
$ ipython notebook
第 3 節:Python 資料分析介紹了已安裝的軟體包和用法。
若要設定開發環境以使用 Spark、Hadoop MapReduce 和 Amazon Web Services,請執行aws.sh
腳本:
$ ./aws.sh
第 4 節:大數據、AWS 和 Heroku 介紹了已安裝的軟體包和用法。
要設定通用資料存儲,請執行datastores.sh
腳本:
$ ./datastores.sh
第 5 節:資料儲存描述了已安裝的軟體包和用法。
若要設定 JavaScript Web 開發環境,請執行web.sh
腳本:
$ ./web.sh
第 6 節:Web 開發描述了已安裝的軟體包和用法。
若要設定 Android 開發環境,請執行android.sh
腳本:
$ ./android.sh
第 7 節:Android 開發介紹了已安裝的軟體套件和用法。
對於終端來說,文字編輯器是開發人員最重要的工具。每個人都有自己的偏好,但除非您是 Vim 的鐵桿用戶,否則很多人都會告訴您 Sublime Text 是目前最好的。
brew.sh 腳本安裝 Sublime Text。
如果您想單獨安裝,請繼續下載。開啟.dmg文件,將其拖曳到「應用程式」資料夾中。
注意:此時,我將在 OS X Dock 上為 Sublime Text 建立一個捷徑。為此,請右鍵單擊正在運行的應用程序,然後選擇選項 > 保留在 Dock 中。
Sublime Text 不是免費的,但我認為它有無限的「評估期」。不管怎樣,我們會經常使用它,即使看似昂貴的 70 美元的價格標籤也值得每一分錢。如果你能負擔得起,我建議你支持這個很棒的工具。
osx.sh 腳本包含 Sublime Text 配置。
Soda 主題是 Sublime Text 的一個很棒的 UI 主題,特別是如果您使用深色主題並且認為側邊欄像拇指酸痛一樣突出。
如果您使用 Will Bond 出色的 Sublime Package Control,您可以透過Package Control: Install Package
選單項目輕鬆安裝 Soda 主題。 Soda Theme 包在包列表中列為Theme - Soda
。
或者,如果您是 git 用戶,則可以透過將儲存庫直接複製到 Sublime Text 應用程式設定區域中的Packages
目錄來安裝主題並保持最新狀態。
您可以使用選單項目Preferences -> Browse Packages...
找到 Sublime Text Packages
目錄。
在Packages
目錄中,使用以下命令複製主題儲存庫:
$ git clone https://github.com/buymeasoda/soda-theme/ "Theme - Soda"
Sublime Text 2 -> Preferences -> Settings - User
"theme": "Soda Light.sublime-theme"
或"theme": "Soda Dark.sublime-theme"
Sublime Text 2 使用者設定範例
{
"theme": "Soda Light.sublime-theme"
}
Sublime Text -> Preferences -> Settings - User
"theme": "Soda Light 3.sublime-theme"
或"theme": "Soda Dark 3.sublime-theme"
Sublime Text 3 使用者設定範例
{
"theme": "Soda Light 3.sublime-theme"
}
雖然 Monokai 是一個很棒的配色方案,但我發現註釋可能很難看到。您可以按照這些說明變更預設主題的顏色。
我將評論顏色設定為#E6DB74
。
...
foreground
#E6DB74
...
Atom 是來自 GitHub 的一款出色的開源編輯器,正在迅速獲得貢獻者和流行度。
brew.sh 腳本安裝 Atom。
如果您喜歡單獨安裝,請下載它,打開.dmg文件,然後拖放到「應用程式」資料夾中。
Atom 有一個很棒的套件管理器,可以讓您輕鬆安裝核心包和社區包。
既然我們在航站樓待了這麼多時間,我們應該努力把它打造成一個更加愉快、豐富多彩的地方。
bootstrap.sh 腳本和 osx.sh 腳本包含終端自訂。
與普通終端相比,我更喜歡 iTerm2,因為它還有一些額外的出色功能。下載並安裝 iTerm2(最新版本,即使它說“測試版”)。
在 Finder 中,將 iTerm 應用程式檔案拖放到「應用程式」資料夾中。
現在您可以透過 Launchpad 等啟動 iTerm。
讓我們快速更改一些偏好設定。在 iTerm > 首選項... 的「設定檔」標籤中,使用「+」圖示建立一個新設定文件,並將其重新命名為您的名字。然後,選擇其他操作... > 設定為預設值。在“視窗”部分下,將大小更改為更好的值,例如“列:125”和“行:35”。 。最後,我更改了選項鍵的工作方式,以便我可以按照此處所述在單字之間快速跳躍。
完成後,點擊左上角的紅色「X」(在 OS X 首選項窗格中自動儲存)。關閉視窗並打開新視窗以查看大小變化。
既然我們在航站樓待了這麼多時間,我們應該努力把它打造成一個更加愉快、豐富多彩的地方。接下來的工作可能看起來很多,但相信我,它會讓開發體驗變得更好。
現在讓我們來添加一些顏色。我非常喜歡 Solarized 配色。從科學角度來看,它對眼睛來說應該是最佳的。我只是覺得它很漂亮。
此時,您也可以變更電腦的名稱,該名稱顯示在該終端機提示字元中。如果您想這樣做,請前往系統偏好設定>共享。例如,我將我的名稱從“Donne's MacBook Pro”更改為“MacBook Pro”,因此它在終端機中顯示為MacBook-Pro
。
現在我們有了一個可以使用的終端機!
雖然 Sublime Text 將是我們的主要編輯器,但學習 Vim 的一些非常基本的用法是個好主意。它是終端內非常流行的文字編輯器,通常預先安裝在任何 Unix 系統上。
例如,當您執行 Git 提交時,它將開啟 Vim 以允許您輸入提交訊息。
我建議你閱讀 Vim 教學。掌握編輯器的兩種「模式」的概念,插入(按i
)和正常(按Esc
退出插入模式),將是感覺最不自然的部分。之後它只是記住一些重要的按鍵。
bootstrap.sh 腳本包含 Vim 自訂。
VirtualBox 建立和管理虛擬機器。對於其商業競爭對手VMware來說,這是一個可靠的免費解決方案。
brew.sh 腳本安裝 VirtualBox
如果您喜歡單獨安裝,可以在此處下載或運行:
$ brew update
$ brew install caskroom/cask/brew-cask
$ brew cask install --appdir="/Applications" virtualbox
Vagrant 建立並配置開發環境。您可以將其視為 VirtualBox 和 Ansible、Chef、Puppet 和 Salt 等組態管理工具的更高階包裝器。 Vagrant 也支援 Docker 容器和 Amazon EC2 等伺服器環境。
brew.sh 腳本安裝 Vagrant。
如果您喜歡單獨安裝,可以在此處下載或運行:
$ brew update
$ brew install caskroom/cask/brew-cask
$ brew cask install --appdir="/Applications" vagrant
Docker 可自動在軟體容器內部署應用程式。我認為下面的引述很好地解釋了docker:「Docker 是一種工具,可以將應用程式及其依賴項打包到可以在任何Linux 伺服器上運行的虛擬容器中。這有助於實現應用程式運行位置的靈活性和可移植性,無論是在本地、公有雲、私有雲、裸機等」。
brew.sh 腳本安裝 Docker。
如果您喜歡單獨安裝,可以在此處下載或運行:
$ brew update
$ brew install docker
$ brew install boot2docker
初始化並啟動boot2docker
(只需執行一次):
$ boot2docker init
啟動虛擬機器:
$ boot2docker up
設定DOCKER_HOST
環境變數並根據boot2coker up
指令的輸出填入 IP 和 PORT:
$ export DOCKER_HOST=tcp://IP:PORT
沒有 Git 的開發人員算什麼?
當您執行安裝 Xcode 命令列工具部分時,應該已經安裝了 Git。
若要檢查您的 Git 版本,請執行以下命令:
$ git --version
$ which git
應該輸出/usr/local/bin/git
。
讓我們設定一些基本配置。將 .gitconfig 檔案下載到您的主目錄:
$ cd ~
$ curl -O https://raw.githubusercontent.com/donnemartin/dev-setup/master/.gitconfig
它將為status
、 branch
和diff
Git 命令以及幾個別名添加一些顏色。請隨意查看該文件的內容,並根據您的喜好添加內容。
接下來,我們將定義您的 Git 使用者(應與您用於 GitHub 和 Heroku 的名稱和電子郵件相同):
$ git config --global user.name "Your Name Here"
$ git config --global user.email "[email protected]"
它們將會被加入到您的.gitconfig
檔中。
要將程式碼推送到 GitHub 儲存庫,我們將使用建議的 HTTPS 方法(而不是 SSH)。因此,您不必每次都輸入使用者名稱和密碼,讓我們啟用 Git 密碼緩存,如下所述:
$ git config --global credential.helper osxkeychain
注意:在 Mac 上,請務必記住將.DS_Store
(放置在資料夾中的隱藏 OS X 系統檔案)新增至.gitignore
檔案中。您可以查看此儲存庫的 .gitignore 檔案以獲取靈感。另請參閱 GitHub 的 .gitignore 範本集合。
套件管理器使安裝和更新應用程式(對於作業系統)或程式庫(對於程式語言)變得更加容易。 OS X 最受歡迎的一種是 Homebrew。
brew.sh 腳本安裝 Homebrew 和許多有用的 Homebrew 公式和應用程式。
如果您希望單獨安裝,請執行以下命令並按照螢幕上的步驟操作:
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
要安裝軟體包(或 Homebrew 詞彙中的公式),只需鍵入:
$ brew install
若要更新 Homebrew 的公式目錄,請執行:
$ brew update
注意:我發現命令有時會因為錯誤而失敗。如果發生這種情況,請執行以下命令(當您安裝了 Git 時):
$ cd /usr/local
$ git fetch origin
$ git reset --hard origin/master
要查看是否有任何軟體包需要更新:
$ brew outdated
要更新套件:
$ brew upgrade
Homebrew 會保留已安裝的舊版軟體包,以防您想回滾。這很少是必要的,因此您可以進行一些清理以擺脫那些舊版本:
$ brew cleanup
若要查看您已安裝的內容(及其版本號):
$ brew list --versions
Ruby 已經安裝在 Unix 系統上,但我們不想搞亂該安裝。更重要的是,我們希望能夠使用最新版本的Ruby。
brew.sh
提供了 rbenv 和 ruby-build,可讓您在同一台電腦上管理多個版本的 Ruby。 brew.sh
將以下行新增至您的.extra
檔案以初始化rbenv
:
eval "$(rbenv init -)"
rbenv
使用ruby-build
下載、編譯和安裝新版本的 Ruby。您可以看到所有可供下載和安裝的版本:
$ ruby-build --definitions
要安裝新版本的 Ruby:
# list all available versions installed on the system:
$ rbenv install -l
# install a Ruby version:
$ rbenv install 2.2.3
切換 Ruby 版本:
# set a local application-specific Ruby version in the current directory
$ rbenv local 1.9.3
# set the global version of Ruby to be used in all shells
$ rbenv global 2.0.0
預設情況下, rbenv
會將 Ruby 版本安裝到~/.rbenv/versions
下的同名目錄中。因為您的使用者擁有這個目錄,所以您不再需要使用sudo
來安裝 gems。
OS X 與 Linux 一樣,出廠時已經安裝了 Python。但你不想弄亂系統Python(有些系統工具依賴它等),所以我們將使用Homebrew安裝我們自己的版本。它還將使我們能夠獲得最新版本的 Python 2.7 和 Python 3。
brew.sh 腳本安裝最新版本的 Python 2 和 Python 3。
Pip 是 Python 套件管理器。
pydata.sh 腳本安裝 pip。
這裡有幾個 Pip 命令可以幫助您入門。要安裝 Python 套件:
$ pip install
升級包:
$ pip install --upgrade
若要查看已安裝的內容:
$ pip freeze
要卸載軟體包:
$ pip uninstall
Virtualenv 是一個為每個專案建立隔離的 Python 環境的工具。對於特定項目,最好不要全域安裝所需的套件,而是將它們安裝在專案中的獨立資料夾中(例如名為venv
的資料夾),該資料夾將由 virtualenv 管理。
優點是不同的專案可能需要不同版本的套件,如果全域安裝包將很難管理。它還允許您保持全域/usr/local/lib/python2.7/site-packages
資料夾乾淨。
pydata.sh 腳本安裝 Virtualenv。
假設您在名為myproject
的目錄中有一個項目。若要為該專案設定 virtualenv:
$ cd myproject/
$ virtualenv venv --distribute
如果您希望 virtualenv 也繼承全域安裝的套件(如上面提到的 IPython 或 Numpy),請使用:
$ virtualenv venv --distribute --system-site-packages
這些命令會在您的專案中建立一個venv
子目錄,其中安裝了所有內容。不過,您需要先啟動它(在您正在處理專案的每個終端中):
$ source venv/bin/activate
您應該會在終端機提示符號的開頭看到(venv)
表示您正在 virtualenv 中工作。現在當你安裝一些東西:
$ pip install
它將安裝在venv
資料夾中,並且不會與其他項目衝突。
重要提示:請記住將venv
新增至專案的.gitignore
檔案中,這樣就不會在原始程式碼中包含所有這些內容!
Virtualenvwrapper 是一組擴展,其中包括用於建立和刪除虛擬環境以及管理開發工作流程的包裝器,從而可以更輕鬆地同時處理多個項目,而不會在其依賴項中引入衝突。
主要特點包括:
pydata.sh 腳本安裝 Virtualenvwrapper。
建立一個新的虛擬環境。當您建立新環境時,它會自動成為活動環境:
$ mkvirtualenv [env name]
刪除現有的虛擬環境。必須先停用環境(見下文),然後才能刪除:
$ rmvirtualenv [env name]
激活虛擬環境。如果沒有傳遞參數,也會列出所有現有的虛擬環境:
$ workon [env name]
停用目前活動的虛擬環境。請注意,workon 將在啟動新環境之前自動停用目前環境:
$ deactivate
Anaconda 是 Python 程式語言的免費發行版,用於大規模資料處理、預測分析和科學計算,旨在簡化套件管理和部署。
pydata.sh 腳本安裝執行 Python 資料應用程式所需的套件。或者,您可以安裝更重量級的 Anaconda。
按照說明安裝 Anaconda 或輕量級的 miniconda。
IPython 是一個很棒的項目,它提供了比在命令列中運行$ python
獲得的更好的 Python shell。它有許多很酷的功能(從 Python shell 運行 Unix 命令、輕鬆複製和貼上、內聯創建 Matplotlib 圖表等),我將讓您參考文件來發現它們。
IPython Notebook 是一個基於 Web 的互動式運算環境,您可以在其中將程式碼執行、文字、數學、繪圖和富媒體組合到單一文件中。
pydata.sh 腳本安裝 IPython Notebook。如果您想單獨安裝它,請運行:
$ pip install "ipython[notebook]"
如果您遇到有關 pyzmq 的問題,請參閱以下 Stack Overflow 帖子並運行:
$ pip uninstall ipython
$ pip install "ipython[all]"
$ ipython notebook
如果您想查看一些範例,這裡有一些我大量使用 IPython Notebooks 的儲存庫:
NumPy 增加了對大型多維數組和矩陣的 Python 支持,以及用於對這些數組進行操作的大型高級數學函數庫。
pydata.sh 腳本安裝 NumPy。如果您想單獨安裝它,請運行:
$ pip install numpy
請參閱以下 Numpy IPython 筆記本。
Pandas 是一個用 Python 編寫的用於資料操作和分析的軟體庫。提供用於操作數值表和時間序列的資料結構和操作。
pydata.sh 腳本安裝 Pandas。如果您想單獨安裝它,請運行:
$ pip install pandas
請參閱以下 pandas IPython 筆記本。
Matplotlib 是一個 Python 2D 繪圖庫,可以以各種硬拷貝格式和跨平台的互動環境產生出版品質的圖形。
pydata.sh 腳本安裝 matplotlib。如果您想單獨安裝它,請運行:
$ pip install matplotlib
請參閱以下 matplotlib IPython 筆記本。
Seaborn是一個基於matplotlib的Python視覺化函式庫。它提供了一個高級介面來繪製有吸引力的統計圖形。
pydata.sh 腳本安裝 matplotlib。如果您想單獨安裝它,請運行:
$ pip install seaborn
請參閱以下帶有 Seaborn IPython Notebooks 的 matplotlib。
Scikit-learn 增加了對大型多維數組和矩陣的 Python 支持,以及用於對這些數組進行操作的大型高級數學函數庫。
pydata.sh 腳本安裝 Scikit-learn。如果您想單獨安裝它,請運行:
$ pip install scikit-learn
請參閱以下 scikit-learn IPython 筆記本。
SciPy 是基於 Python 的 Numpy 擴充功能所建構的數學演算法和便利函數的集合。它透過為使用者提供用於操作和視覺化資料的高級命令和類,為互動式 Python 會話增添了強大的功能。
pydata.sh 腳本安裝 SciPy。如果您想單獨安裝它,請運行:
$ pip install scipy
請參閱以下 SciPy IPython 筆記本。
Flask 是一個用 Python 編寫的微型 Web 應用程式框架。
pydata.sh 腳本安裝 SciPy。如果您想單獨安裝它,請運行:
$ pip install Flask
[即將推出] 請參閱以下 Flask IPython 筆記本。
Bokeh 是一個 Python 互動式視覺化函式庫,針對現代 Web 瀏覽器進行示範。其目標是以 D3.js 風格提供優雅、簡潔的新穎圖形結構,同時在非常大的資料集或串流資料集上提供高效能互動性。 Bokeh 可以幫助任何想要快速輕鬆地建立互動式繪圖、儀表板和資料應用程式的人。
pydata.sh 腳本安裝 Bokeh。如果您想單獨安裝它,請運行:
$ pip install bokeh
[即將推出] 請參閱以下 Bokeh IPython 筆記本。
Spark 是一種記憶體叢集運算框架,對於某些應用程式來說速度最高可達 100 倍,並且非常適合機器學習演算法。
aws.sh 腳本在本地安裝 Spark。它還透過配置.bash_profile
並將儲存庫的profile_pyspark/
新增至.ipython
來連接 Spark 在 IPython Notebook 中運行。
如果您想單獨安裝它,請運行:
$ brew install apache-spark
本地運行 Spark:
$ pyspark
在 IPython Notebook 中執行 Spark:
$ ipython notebook --profile=pyspark
請參閱以下 Spark IPython 筆記本。
AWS Elastic MapReduce 也支援 Spark,如此處所述。若要建立集群,請使用 AWS CLI 執行下列命令,將myKeyPair
替換為透過 SSH 連接到集群的密鑰對的名稱:
$ aws emr create-cluster --name "Spark cluster" --ami-version 3.8 --applications Name=Spark --ec2-attributes KeyName=myKeyPair --instance-type m3.xlarge --instance-count 3 --use-default-roles
Mrjob 支援 Python 中的 MapReduce 作業,可在本機或 Hadoop 叢集(例如 AWS Elastic MapReduce (EMR))上執行它們。
Mrjob 僅適用於 Python 2。
aws.sh 腳本在本地安裝 mrjob。如果您想單獨安裝它,請運行:
$ pip install mrjob
aws.sh 腳本也將範本.mrjob.conf
檔案同步到您的主資料夾。請注意,執行 aws.sh 腳本將覆蓋任何現有的~/.mrjob.conf
檔案。使用您的憑證、金鑰對、區域和 S3 儲存桶路徑更新設定檔:
runners:
emr:
aws_access_key_id: YOURACCESSKEY
aws_secret_access_key: YOURSECRETKEY
aws_region: us-east-1
ec2_key_pair: YOURKEYPAIR
ec2_key_pair_file: ~/.ssh/YOURKEYPAIR.pem
...
s3_scratch_uri: s3://YOURBUCKETSCRATCH
s3_log_uri: s3://YOURBUCKETLOG
...
請參考以下 mrjob IPython Notebook。
Awesome AWS 是一系列很棒的 AWS 庫、開源儲存庫、指南、部落格和其他資源的精選清單。這是了解 AWS 支援和社群主導的各種針對 AWS 的最新成果的好方法。
Awesome AWS 中的「熱門」儲存庫會根據其受歡迎程度進行視覺標記:
不在The Fiery Meter of AWSome
上的儲存庫仍然很棒,請參閱關於儲存庫 AWSomeness 的註釋。
要開始使用 AWS,您首先需要註冊一個帳戶。
當您註冊 Amazon Web Services (AWS) 時,您的 AWS 帳戶將自動註冊 AWS 中的所有服務。您只需為您使用的服務付費。新用戶有資格透過 AWS 免費套餐使用 12 個月。
若要建立 AWS 帳戶,請開啟 http://aws.amazon.com/,然後按一下註冊。請按照螢幕上的指示進行操作。註冊過程的一部分涉及接聽電話並使用電話鍵盤輸入 PIN。記下您的 AWS 帳號 ID。
AWS Command Line Interface 是一個用於管理 AWS 服務的統一工具,可讓您從命令列控制多個 AWS 服務並透過腳本自動執行這些服務。
aws.sh 腳本安裝 AWS CLI。如果您想單獨安裝它,請運行:
$ pip install awscli
執行以下命令來配置 AWS CLI:
$ aws configure
或者,aws.sh 腳本還將模板.aws/
資料夾同步到您的主資料夾。請注意,執行 aws.sh 腳本將覆蓋任何現有的~/.aws/
資料夾。使用您的憑證和位置更新設定檔:
[default]
region = us-east-1
[default]
aws_access_key_id = YOURACCESSKEY
aws_secret_access_key = YOURSECRETKEY
請小心,不要意外檢查您的憑證。 .gitignore 檔案設定為忽略帶有憑證的檔案。
請參閱以下 AWS CLI IPython 筆記本。
儘管 AWS CLI 是管理 AWS 支援的服務的絕佳資源,但很難記住以下內容的用法:
SAWS
旨在透過以下功能增強AWS CLI:
在底層, SAWS
由 AWS CLI 提供支持,並支援相同的命令和命令結構。
SAWS
和AWS CLI
用法:
aws [parameters] [options]
SAWS
特點:
SAWS
適用於 Mac、Linux、Unix 和 Windows。
請參閱存儲庫連結。
Boto 是適用於 Python 的官方 AWS 開發工具包。
aws.sh 腳本安裝 boto。如果您想單獨安裝它,請運行:
$ pip install boto
Boto 使用與 AWS CLI 部分中所述相同的配置。
請參閱以下 Boto IPython Notebook。
在發現 S3cmd 之前,我一直使用 S3 控制台來執行基本操作,並使用 boto 來執行更多繁重的工作。然而,有時我只是想透過命令列來完成我的工作。
我發現 S3cmd 是一個很棒的命令列工具,可用於與 AWS 上的 S3 互動。 S3cmd是用Python編寫的,是開源的,即使用於商業用途也是免費的。它提供了比 AWS CLI 中更高級的功能。
S3cmd 僅適用於 Python 2。
aws.sh 腳本安裝 s3cmd。如果您想單獨安裝它,請運行:
$ pip install s3cmd
執行下列命令將提示您輸入 AWS 存取金鑰和 AWS 金鑰。要遵循安全最佳實踐,請確保您使用 IAM 帳戶而不是使用根帳戶。
我還建議啟用 GPG 加密來加密靜態數據,並啟用 HTTPS 來加密傳輸中的資料。請注意,這可能會影響效能。
$ s3cmd --configure
或者,aws.sh 腳本還將模板.s3cfg
檔案同步到您的主資料夾。請注意,執行 aws.sh 腳本將覆蓋任何現有的~/.s3cfg
檔案。使用您的憑證和位置更新設定檔:
[Credentials]
aws_access_key_id = YOURACCESSKEY
aws_secret_access_key = YOURSECRETKEY
...
bucket_location = US
...
gpg_passphrase = YOURPASSPHRASE
請小心,不要意外檢查您的憑證。 .gitignore 檔案設定為忽略帶有憑證的檔案。
請參閱以下 s3cmd IPython 筆記本。
S3DistCp 是 DistCp 的擴展,經過最佳化以與 Amazon S3 搭配使用。 S3DistCp 對於組合較小的檔案並將它們聚合在一起非常有用,它採用模式和目標檔案將較小的輸入檔案組合為較大的檔案。 S3DistCp 也可用於將大量資料從 S3 傳輸到 Hadoop 叢集。
S3DistCp 與 AWS CLI 捆綁在一起。
請參閱以下 S3DistCp IPython 筆記本。
s3-parallel-put 是一個將多個檔案並行上傳到 S3 的好工具。
$ git clone https://github.com/twpayne/s3-parallel-put.git
請參考以下 s3-parallel-put IPython Notebook。
Redshift 是一個基於大規模平行處理 (MPP) 技術建構的快速資料倉儲。
請遵循這些說明。
請參閱以下 Redshift IPython 筆記本。
Kinesis 即時傳輸數據,能夠每秒處理數千個數據流。
請遵循這些說明。
請參閱以下 Kinesis IPython 筆記本。
Lambda 會執行程式碼來回應事件,自動管理運算資源。
請遵循這些說明。
請參閱以下 Lambda IPython 筆記本。
Amazon Machine Learning 是一項讓所有技能水平的開發人員都能輕鬆使用機器學習技術的服務。 Amazon Machine Learning 提供視覺化工具和精靈,引導您完成建立機器學習 (ML) 模型的過程,而無需學習複雜的 ML 演算法和技術。一旦您的模型準備就緒,Amazon Machine Learning 就可以使用簡單的 API 輕鬆取得應用程式的預測,而無需實施自訂預測產生程式碼或管理任何基礎架構。
請遵循這些說明。
[即將推出] 請參閱以下 AWS 機器學習 IPython 筆記本。
如果您還不熟悉 Heroku,它是一個平台即服務 (PaaS),可讓您輕鬆在線上部署應用程式。還有其他類似的解決方案,但 Heroku 是最早的解決方案之一,也是目前最受歡迎的解決方案。它不僅讓開發人員的生活變得更輕鬆,而且我發現在建立應用程式時考慮 Heroku 部署會迫使您遵循現代應用程式開發最佳實踐。
假設您有一個帳戶(如果沒有,請註冊),讓我們為命令列安裝 Heroku 用戶端。 Heroku 提供了 Mac OS X 安裝程式 Heroku Toolbelt,其中包含用戶端。但對於這類工具,我更喜歡使用 Homebrew。它使我們能夠更好地追蹤我們安裝的內容。對我們來說幸運的是,Homebrew 包含一個heroku-toolbelt
公式:
$ brew install heroku-toolbelt
公式可能沒有最新版本的 Heroku 用戶端,該用戶端經常更新。我們現在更新一下:
$ brew upgrade heroku-toolbelt
不要害怕時不時地運行heroku update
以始終擁有最新版本。
使用您的電子郵件和密碼登入您的 Heroku 帳號:
$ heroku login
如果這是一個新帳戶,並且由於您的~/.ssh
目錄中還沒有公共SSH 金鑰,它將為您建立一個。說是!它還會將密鑰上傳到您的 Heroku 帳戶,這將允許您從這台電腦部署應用程式。
如果它沒有為您提供建立 SSH 金鑰(即您的 Heroku 帳戶已經有與之關聯的 SSH 金鑰),您可以透過執行以下命令手動建立:
$ mkdir ~/.ssh
$ ssh-keygen -t rsa
保留預設檔名並跳過密碼,只需按兩次 Enter 鍵即可。然後,將金鑰新增至您的 Heroku 帳戶:
$ heroku keys:add
完成關鍵業務後,您就可以部署應用程式了! Heroku 有一個很棒的入門指南,所以我會讓您參考一下(此處連結的指南適用於 Python,但每種流行語言都有一個指南)。 Heroku 使用 Git 推送程式碼進行部署,因此請確保您的應用程式處於 Git 版本控制之下。快速備忘單(如果您以前使用過 Heroku):
$ cd myapp/
$ heroku create myapp
$ git push heroku master
$ heroku ps
$ heroku logs -t
Heroku 開發中心充滿了豐富的資源,所以一定要去看看!
datastores.sh 腳本安裝 MySQL。如果您想單獨安裝它,請運行:
$ brew update # Always good to do
$ brew install mysql
正如您在 Homebrew 的輸出中看到的,在使用 MySQL 之前,我們首先需要對其進行設定:
$ unset TMPDIR
$ mkdir /usr/local/var
$ mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
若要啟動 MySQL 伺服器,請使用mysql.server
工具:
$ mysql.server start
要在完成後停止它,請運行:
$ mysql.server stop
您可以透過以下方式查看可用於mysql.server
的不同指令:
$ mysql.server --help
若要與命令列客戶端連接,請執行:
$ mysql -uroot
(使用exit
退出 MySQL shell。)
注意:預設情況下,MySQL 使用者root
沒有密碼。對於本地開發資料庫來說這並不重要。如果您想更改它,可以使用$ mysqladmin -u root password 'new-password'
。
就 MySQL 的 GUI 用戶端而言,我習慣使用官方且免費的 MySQL Workbench。但請隨意使用您喜歡的任何一個。
datastores.sh 腳本安裝 MySQL Workbench。如果您想單獨安裝它,請運行:
$ brew install caskroom/cask/brew-cask
$ brew cask install --appdir="/Applications" mysqlworkbench
您也可以在此處找到 MySQL Workbench 下載。 (注意:它會要求您登錄,您不需要登錄,只需單擊底部的“不,謝謝,只需開始我的下載!”。)
MongoDB 是一種流行的 NoSQL 資料庫。
datastores.sh 腳本安裝 MongoDB。如果您想單獨安裝它,請運行:
$ brew update
$ brew install mongo
在終端機中,啟動 MongoDB 伺服器:
$ mongod
在另一個終端機中,使用 Mongo shell 連接到資料庫:
$ mongo
我會讓你參考 MongoDB 的入門指南來了解更多!
Redis 是一種速度極快的記憶體中鍵值存儲,它使用磁碟進行持久化。它有點像 NoSQL 資料庫,但您可以用它做很多很酷的事情,而使用其他資料庫解決方案則很難或效率低下。例如,它經常被網路應用程式用作會話管理或緩存,但它還有許多其他用途。
datastores.sh 腳本安裝 Redis。如果您想單獨安裝它,請運行:
$ brew update
$ brew install redis
使用預設組態設定啟動本機 Redis 伺服器:
$ redis-server
對於進階用法,您可以調整/usr/local/etc/redis.conf
中的設定檔(我建議先進行備份),並將這些設定用於:
$ redis-server /usr/local/etc/redis.conf
在另一個終端機中,使用以下命令透過 Redis 命令列介面連接到伺服器:
$ redis-cli
我會讓您參考 Redis 的文檔或其他教學課程以獲取更多資訊。
正如包裝盒上所說,Elasticsearch 是一個「強大的開源、分散式即時搜尋和分析引擎」。它使用 HTTP REST API,使任何程式語言都可以輕鬆使用。
您可以使用 Elasticsearch 來實現即時搜尋結果、自動完成、推薦、機器學習等很酷的功能。
datastores.sh 腳本安裝 Elasticsearch。如果您喜歡單獨安裝它,請查看以下討論。
Elasticsearch 在 Java 上運行,因此請執行以下命令檢查是否安裝了它:
$ java -version
如果尚未安裝 Java,則會出現一個視窗提示您安裝它。繼續並點擊“安裝”。
接下來,安裝elasticsearch:
$ brew install elasticsearch
注意:Elasticsearch 還有一個plugin
程序,可以移動到您的PATH
。我發現這個名稱太通用了,所以我透過運行將其重命名為elasticsearch-plugin
(如果更新elasticsearch,則需要再次執行此操作):
$ mv /usr/local/bin/plugin /usr/local/bin/elasticsearch-plugin
下面我將使用elasticsearch-plugin
,如果你沒有遵循這一步,只需將其替換為plugin
即可。
正如你所猜測的,你可以為elasticsearch添加插件。一種流行的方法是 elasticsearch-head,它為您提供了 REST API 的 Web 介面。安裝它:
$ elasticsearch-plugin --install mobz/elasticsearch-head
使用下列指令啟動本機Elasticsearch伺服器:
$ elasticsearch
透過執行以下命令來測試伺服器是否正常運作:
$ curl -XGET 'http://localhost:9200/'
如果您安裝了elasticsearch-head插件,您可以透過http://localhost:9200/_plugin/head/
存取其介面。
Elasticsearch的文檔更多的是一個參考。首先,我建議閱讀此 StackOverflow 答案中連結的一些部落格文章。
web.sh 腳本安裝 Node.js。您也可以使用 Homebrew 手動安裝它:
$ brew update
$ brew install node
公式也會安裝 npm 套件管理器。然而,正如 Homebrew 輸出所建議的,我們需要將/usr/local/share/npm/bin
添加到我們的路徑中,以便 npm 安裝的帶有可執行檔的模組能夠拾取它們。
為此,請將此行新增至~/.path
檔案中的export PATH
行之前:
PATH=/usr/local/share/npm/bin: $PATH
開啟新終端以使$PATH
更改生效。
我們還需要透過執行以下命令來告訴 npm 在哪裡可以找到 Xcode 命令列工具:
$ sudo xcode-select -switch /usr/bin
(如果 Xcode 命令列工具是由 Xcode 安裝的,請嘗試改為:)
$ sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
預設情況下,節點模組本地安裝在每個專案的node_modules
資料夾中,但至少有兩個值得全域安裝。它們是 CoffeeScript 和 Grunt:
$ npm install -g coffee-script
$ npm install -g grunt-cli
要安裝套件:
$ npm install # Install locally
$ npm install -g # Install globally
要安裝套件並將其保存在專案的package.json
檔案中:
$ npm install --save
若要查看已安裝的內容:
$ npm list # Local
$ npm list -g # Global
若要尋找過時的軟體包(本地或全域):
$ npm outdated [-g]
若要升級全部或特定套件:
$ npm update []
要卸載軟體包:
$ npm uninstall
JSHint 是 JavaScript 開發人員最好的朋友。
如果安裝 Sublime Package Manager 的額外學分分配已完成,JSHint 可以作為 Sublime Text 的一部分運作。
web.sh 腳本安裝 JSHint。您也可以透過 npm 手動安裝它:
$ npm install -g jshint
請按照 JSHint Package Manager 頁面上的附加說明進行操作或手動建置它。
CSS 預處理器變得相當流行,最受歡迎的處理器是 LESS 和 SASS。預處理很像編譯 CSS 程式碼。它允許您以多種不同的方式重複使用 CSS。讓我們從使用 LESS 作為基本預處理器開始,它被許多流行的 CSS 框架(如 Bootstrap)使用。
web.sh 腳本安裝 LESS。要手動安裝 LESS,您必須使用 NPM / Node,您之前使用 Homebrew 安裝了它。在終端機中使用:
$ npm install -g less
注意: -g
標誌是可選的,但它可以防止弄亂檔案路徑。您可以在沒有標誌的情況下安裝,只需知道您在做什麼即可。
您可以使用以下命令檢查它是否安裝正確:
$ lessc --version
這應該輸出一些有關編譯器的資訊:
lessc 1.5.1 (LESS Compiler) [JavaScript]
好的,LESS 已安裝並正在運作。偉大的!
使用 LESS 有很多不同的方法。通常我用它在本地編譯我的樣式表。您可以透過在終端機中使用以下命令來做到這一點:
$ lessc template.less template.css
這兩個選項是編譯器的“輸入”和“輸出”檔案。該命令在目前目錄中尋找 LESS 樣式表,對其進行編譯,並將其輸出到同一目錄中的第二個檔案。您可以新增路徑以保持專案文件井井有條:
$ lessc less/template.less css/template.css
在他們的頁面上閱讀有關 LESS 的更多資訊:http://lesscss.org/
此部分正在開發中。
android.sh 腳本安裝 Java。
如果您喜歡單獨安裝,可以在此處下載 JDK 或運行:
$ brew update
$ brew install caskroom/cask/brew-cask
$ brew cask install --appdir="~/Applications" java
android.sh 腳本安裝 Android SDK。
如果您喜歡單獨安裝,可以在此下載。
android.sh 腳本安裝 Android Studio。
如果您喜歡單獨安裝,可以在此處下載或運行:
$ brew update
$ brew install caskroom/cask/brew-cask
$ brew cask install --appdir="~/Applications" android-studio
android.sh 腳本安裝 Java。
如果您喜歡單獨安裝,可以在此處下載或運行:
$ brew update
$ brew install caskroom/cask/brew-cask
$ brew cask install --appdir="~/Applications" intellij-idea-ce
歡迎錯誤回報、建議和拉取請求!
請參閱製作人員頁面。
請隨時與我聯繫討論任何問題、疑問或意見。
我的聯絡資訊可以在我的 GitHub 頁面上找到。
該存儲庫包含各種內容;有些是由 Donne Martin 開發的,有些是來自第三方。第三方內容根據這些方提供的許可進行分發。
Donne Martin 開發的內容根據以下許可證分發:
我根據開源許可證向您提供此儲存庫中的程式碼和資源。因為這是我的個人儲存庫,所以您收到的我的程式碼和資源的許可證來自我,而不是我的雇主 (Facebook)。
Copyright 2015 Donne Martin
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.