Mayaでのパッケージ管理 - mayapyにpipを入れてみるよ

#これはなに？
mayapyにて**pip**をインストールしてみます。
こちらの記事の続きです。「mayapy…？」という方は先にお読みいただけるとよいかと思います。

>mayapy - Maya内Python
>http://qiita.com/it_ks/items/5045c99461cb6edef761

#前提
##パッケージ管理
Pythonパッケージを管理するには、いくつかの方法（ツール）が用意されているようです。
今回は、こちらの内容を参考に

>Python パッケージ管理技術まとめ (pip, setuptools, easy_install, etc)
>http://www.yunabe.jp/docs/python_package_management.html

2014/12時点で最もモダンとされる**pip**を選択します。

##pip
のインストールについての**公式ドキュメント**
>https://pip.pypa.io/en/stable/installing/

日本語で解説いただいてる記事
>pipの使い方 (2014/1バージョン) @ そこはかとなく書くよん。
>http://tdoc.info/blog/2014/01/15/pip.html

なお、
Python2.7.9以降には**同梱**されているそうです。
なので、そのうちMaya組み込みPythonもバージョンが上がって、
なにもしなくてもpipが使えるようになることでしょう。

Maya2016現在、mayapyは**Python 2.7.6**です。

#インストール
##get-pip.py
公式ドキュメントから`get-pip.py`をダウンロードしてきて、
これをPythonで叩けば作業完了です。
20160103現在、ダウンロードはこちらから　＞　https://bootstrap.pypa.io/get-pip.py
もしくはこちらでも　＞　https://raw.github.com/pypa/pip/master/contrib/get-pip.py

ここではいわゆるPythonの替わりに、その役割を**mayapy**が担います。つまり

`python get-pip.py`
↓
`mayapy get-pip.py`

です。

##実行
1. cmdを右クリックして「**管理者として実行**」で立ち上げます。
2. `cd`でmayapyのいる場所まで移動します
> `cd "C:\Program Files\Autodesk\Maya2016\bin"`
3. `mayapy "path\to\get-pip.py"`

###ログ

```py:
$ mayapy "path\to\get-pip.py"
Collecting pip
  Using cached pip-7.1.2-py2.py3-none-any.whl
Collecting setuptools
  Using cached setuptools-19.2-py2.py3-none-any.whl
Collecting wheel
  Using cached wheel-0.26.0-py2.py3-none-any.whl
Installing collected packages: pip, setuptools, wheel
Successfully installed pip-7.1.2 setuptools-19.2 wheel-0.26.0
```

`Successfully installed pip-7.1.2 setuptools-19.2 wheel-0.26.0`
ってことで、

- pip-7.1.2
- setuptools-19.2
- wheel-0.26

がインストールされました。

※ちなみに管理者権限で実行しなかった場合(▼)

```py:
> mayapy "path\to\get-pip.py"
Collecting pip
  Using cached pip-7.1.2-py2.py3-none-any.whl
Collecting setuptools
  Downloading setuptools-19.2-py2.py3-none-any.whl (463kB)
    100% |################################| 466kB 568kB/s
Collecting wheel
  Using cached wheel-0.26.0-py2.py3-none-any.whl
Installing collected packages: pip, setuptools, wheel
Exception:
Traceback (most recent call last):
  File "c:\users\{user}\appdata\local\temp\tmpj8cvx2\pip.zip\pip\basecommand.py", line 211, in main
    status = self.run(options, args)
  File "c:\users\{user}\appdata\local\temp\tmpj8cvx2\pip.zip\pip\commands\install.py", line 311, in run
    root=options.root_path,
  File "c:\users\{user}\appdata\local\temp\tmpj8cvx2\pip.zip\pip\req\req_set.py", line 646, in install
    **kwargs
  File "c:\users\{user}\appdata\local\temp\tmpj8cvx2\pip.zip\pip\req\req_install.py", line 803, in install
    self.move_wheel_files(self.source_dir, root=root)
  File "c:\users\{user}\appdata\local\temp\tmpj8cvx2\pip.zip\pip\req\req_install.py", line 998, in move_wheel_files
    isolated=self.isolated,
  File "c:\users\{user}\appdata\local\temp\tmpj8cvx2\pip.zip\pip\wheel.py", line 339, in move_wheel_files
    clobber(source, lib_dir, True)
  File "c:\users\{user}\appdata\local\temp\tmpj8cvx2\pip.zip\pip\wheel.py", line 310, in clobber
    ensure_dir(destdir)
  File "c:\users\{user}\appdata\local\temp\tmpj8cvx2\pip.zip\pip\utils\__init__.py", line 71, in ensure_dir
    os.makedirs(path)
  File "C:\Program Files\Autodesk\Maya2016\bin\python27.zip\os.py", line 157, in makedirs
    mkdir(name, mode)
WindowsError: [Error 5] アクセスが拒否されました。: 'C:\\Program Files\\Autodesk\\Maya2016\\Python\\Lib\\site-
packages\\pip'

```
…アクセス拒否されて、インストールが完遂できません。

#結果
Mayaインストールフォルダ以下に**「Python」**というフォルダがありますが、
そこに下記のような感じであれこれ置かれます。

※ここのことです

```py:mayapyのPYTHONHOME
>>> import os
>>> os.environ['PYTHONHOME']
'C:\\Program Files\\Autodesk\\Maya2016\\Python'
```

##Scriptsフォルダ
直下に**「Scripts」**フォルダが作成されます。
「easy_install.exe」「pip.exe」「wheel.exe」等関連exeが置かれます。

##Lib > site-packages
いろいろ追加されます。
![pip.png](https://qiita-image-store.s3.amazonaws.com/0/102581/0607fa1a-9a1a-ca0f-60d1-d041a2bf3bea.png)
実行前・実行後の差分。右カラムがafter。水色が新規項目。

##import pip
mayapyにてimport pipできるようになります。
![mayapy_pip.png](https://qiita-image-store.s3.amazonaws.com/0/102581/75908f97-5f01-e414-2d0a-e56981d1c8a6.png)
「あ、動いてるんだな」的な確認です。

#まとめ
管理者権限で
`mayapy get-pip.py`
以上。

今回は「入れてみる」なので、ここから先の内容はまたの機会にでも(?)

これで環境汚し放題ですね。カオスの形成は自己責任で！　←