设置新的开发机器可能是一个临时的、手动的且耗时的过程。 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、制表符完成、别名、许多实用函数等的自定义。本存储库的第 2 节描述了一些自定义。
首先,分叉或克隆存储库。 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笔记本。
亚马逊机器学习是一项服务,使所有技能水平的开发人员都可以轻松使用机器学习技术。亚马逊机器学习提供可视化工具和向导,可指导您完成创建机器学习的过程(ML)模型,而无需学习复杂的ML算法和技术。一旦准备就绪,Amazon机器学习就可以轻松使用简单的API来获得应用程序的预测,而无需实现自定义预测代码或管理任何基础架构。
请遵循这些说明。
[即将推出]请参阅以下AWS机器学习Ipython笔记本。
如果您尚不熟悉Heroku,则是一种平台服务(PAAS),它非常容易在线部署您的应用程序。还有其他类似的解决方案,但 Heroku 是最早的解决方案之一,也是目前最受欢迎的解决方案。它不仅使开发人员的生活更加轻松,而且我发现在构建应用程序时要牢记Heroku部署会迫使您遵循现代应用程序开发的最佳实践。
假设您有一个帐户(如果不这样做,请注册),让我们安装命令行的Heroku客户端。 Heroku提供了包括客户的Mac OS X安装程序Heroku工具Belt。但对于这类工具,我更喜欢使用 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 Dev中心充满了丰富的资源,因此请务必检查一下!
datastores.sh脚本安装mysql。如果您愿意单独安装,请运行:
$ brew update # Always good to do
$ brew install mysql
正如您可以从Homebrew的Ouput中看到的那样,在我们使用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 Server,请使用mysql.server
工具:
$ mysql.server start
要在完成后停止它,请运行:
$ mysql.server stop
您可以在以下方式看到mysql.server
的不同命令。
$ mysql.server --help
要与命令行客户端连接,请运行:
$ mysql -uroot
(使用exit
退出MySQL外壳。)
注意:默认情况下,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。您也可以用自制手动安装它:
$ brew update
$ brew install node
该公式还安装了NPM软件包管理器。但是,正如自制输出所建议的那样,我们需要将/usr/local/share/npm/bin
添加到我们的路径上,以便具有可执行文件的NPM安装的模块可以将它们拾取。
为此,在export PATH
路径行之前,将此行添加到您的~/.path
文件:
PATH=/usr/local/share/npm/bin: $PATH
为$PATH
更改打开新终端以生效。
我们还需要通过运行:
$ sudo xcode-select -switch /usr/bin
(如果Xcode命令行工具是由Xcode安装的,请尝试:)
$ sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
默认情况下,节点模块本地安装在每个项目的node_modules
文件夹中,但是至少有两个值得全球安装。这些是咖啡本和咕unt声:
$ 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软件包管理器的额外信用分配,则可以作为Sublime Text的一部分运行Jshint。
Web.sh脚本安装Jshint。您也可以通过NPM手动安装它:
$ npm install -g jshint
按照JSHint软件包管理器页面上的其他说明或手动构建它。
CSS预处理器变得非常受欢迎,最受欢迎的处理器较少且SASS。预处理很像为CSS编译代码。它使您可以以多种不同的方式重复使用CSS。让我们从少少用作基本预处理器开始,它是由许多流行的CSS框架(例如Bootstrap)使用的。
Web.sh脚本安装较少。要减少手动安装,您必须使用NPM /节点,该节点您先前使用Homebrew进行了安装。在终端使用中:
$ npm install -g less
注意: -g
标志是可选的,但它可以防止必须与文件路径四处乱逛。您可以在没有标志的情况下安装,只需知道您在做什么即可。
您可以通过使用以下方式检查它是否正确安装了:
$ lessc --version
这应该输出有关编译器的一些信息:
lessc 1.5.1 (LESS Compiler) [JavaScript]
好的,安装和运行更少。伟大的!
使用少的方法有很多不同的方法。通常,我用它来本地编译我的样式表。您可以通过在终端中使用此命令来做到这一点:
$ lessc template.less template.css
这两个选项是编译器的“输入”和“输出”文件。该命令在当前目录中查看较小的样式表,对其进行编译,并将其输出到同一目录中的第二个文件中。您可以添加路径以保持项目文件组织:
$ lessc less/template.less css/template.css
在此处阅读更多有关其页面上有关的信息: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.