ご安全に! ryosmsです

VagrantのプロビジョニングツールにFabricを使おうとしてWindows環境でハマったのでメモ

Vagrant+Fabricな闘いの痕跡はこのあたり


環境

* Windows7 Pro 64bit
* Python 2.7.10 32bit (https://www.python.org/ からインストーラを取得してインストール)
* pip (Pythonインストーラに同梱)

Fabricインストール時にPyCryptoのビルドでコケるのでWindows用バイナリをインストールする

* http://www.voidspace.org.uk/python/modules.shtml#pycrypto からPyCrypto 2.6 for Python 2.7 32bitのインストーラーを取得してインストールする
http://sourceforge.net/projects/pywin32/files/pywin32/Build216/ からpywin32-216.win32-py2.7のインストーラーを取得してインストールする

* virtualenv と virtualenvwrapperのインストール&セットアップする
> pip install virtualenv virtualenvwrapper-powershell
> mkdir ~/.virtualenvs
> Import-Module virtualenvwrapper 

上記環境まで整えたら、virtualenvで新しいPython環境作って「pip install fabric」でOK!!!
と言いたいけど、virtualenvで普通に環境作ると、PyCryptoが無い状態で仮想環境ができてしまうため、Fabricのインストール時にPyCryptoのビルドが始まってコケるので、virtualenvを作る時に「--system-site-packages」を付けて作る必要がある。

> virtualenv fabric --system-site-packages
> .\fabric\Script\activate
(fabric) > pip install fabric 

なお、mkvirtualenvだとなぜか「--system-site-packages」が無視されるので回避方法
(virtualenvwrapperのworkonディレクトリ内でvirtualenvコマンドを叩く)
> cd ~/.virtualenvs
> virtualenv fabric --system-site-packages
> cd ~
> workon fabric
(fabric) > pip install fabric