pythonのスタート


## xcode command line tools

* macOs sierraでclean installした後、terminalでgitコマンドを入力したら、自動で設置された。
* 元の手順では次のようになる。

```zsh
% sudo xcode-select --install
```

## pythonの確認

* xcode command line toolsを設置するとgitやpython、rubyなどのコマンドが使える。
* 設置されたのはpythonの2系でした。

```zsh
% which python
/usr/bin/python

% python --version
Python 2.7.10
```

## pipとは

* サードパーティのパッケージを管理するためのツールである。
* xcode command line toolsでは設置されなかったため、[公式サイト](https://pip.pypa.io/en/stable/installing/#installing-with-get-pip-py)のガイドをみて設置した。
* get-pip.pyをダウンロードしてpythonで実行する。

```zsh
% curl -fsSL https://bootstrap.pypa.io/get-pip.py | sudo python
Password:
The directory '/Users/devsoul/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/Users/devsoul/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting pip
  Downloading pip-8.1.2-py2.py3-none-any.whl (1.2MB)
    100% |████████████████████████████████| 1.2MB 1.1MB/s
Collecting wheel
  Downloading wheel-0.29.0-py2.py3-none-any.whl (66kB)
    100% |████████████████████████████████| 71kB 9.3MB/s
Installing collected packages: pip, wheel
Successfully installed pip-8.1.2 wheel-0.29.0

% which pip
/usr/local/bin/pip
```
* sudoでpythonを実行しないとpermission deniedというエラーに出会う。
* listで確認したらすでに色んなパッケージが設置されていた。

```zsh
% pip list
altgraph (0.10.2)
bdist-mpkg (0.5.0)
bonjour-py (0.3)
macholib (1.5.1)
matplotlib (1.3.1)
modulegraph (0.10.4)
numpy (1.8.0rc1)
pip (8.1.2)
py2app (0.7.3)
pyobjc-core (2.5.1)
pyobjc-framework-Accounts (2.5.1)
pyobjc-framework-AddressBook (2.5.1)
pyobjc-framework-AppleScriptKit (2.5.1)
pyobjc-framework-AppleScriptObjC (2.5.1)
pyobjc-framework-Automator (2.5.1)
pyobjc-framework-CFNetwork (2.5.1)
pyobjc-framework-Cocoa (2.5.1)
pyobjc-framework-Collaboration (2.5.1)
pyobjc-framework-CoreData (2.5.1)
pyobjc-framework-CoreLocation (2.5.1)
pyobjc-framework-CoreText (2.5.1)
pyobjc-framework-DictionaryServices (2.5.1)
pyobjc-framework-EventKit (2.5.1)
pyobjc-framework-ExceptionHandling (2.5.1)
pyobjc-framework-FSEvents (2.5.1)
pyobjc-framework-InputMethodKit (2.5.1)
pyobjc-framework-InstallerPlugins (2.5.1)
pyobjc-framework-InstantMessage (2.5.1)
pyobjc-framework-LatentSemanticMapping (2.5.1)
pyobjc-framework-LaunchServices (2.5.1)
pyobjc-framework-Message (2.5.1)
pyobjc-framework-OpenDirectory (2.5.1)
pyobjc-framework-PreferencePanes (2.5.1)
pyobjc-framework-PubSub (2.5.1)
pyobjc-framework-QTKit (2.5.1)
pyobjc-framework-Quartz (2.5.1)
pyobjc-framework-ScreenSaver (2.5.1)
pyobjc-framework-ScriptingBridge (2.5.1)
pyobjc-framework-SearchKit (2.5.1)
pyobjc-framework-ServiceManagement (2.5.1)
pyobjc-framework-Social (2.5.1)
pyobjc-framework-SyncServices (2.5.1)
pyobjc-framework-SystemConfiguration (2.5.1)
pyobjc-framework-WebKit (2.5.1)
pyOpenSSL (0.13.1)
pyparsing (2.0.1)
python-dateutil (1.5)
pytz (2013.7)
scipy (0.13.0b1)
setuptools (18.5)
six (1.4.1)
vboxapi (1.0)
wheel (0.29.0)
xattr (0.6.4)
zope.interface (4.1.1)
```

## python vs python3

* pythonはメジャーバージョンが違うとangularのように別物で扱えられるらしい。
* いわゆる互換性がないということ。2系はコマンドがpython、3系はコマンドがpython3でした。
* パッケージ管理もpipとpip3で分かれている。
* 3系はxcode commnad line toolsでは提供されない。brewで設置することを推奨する。