新しく作った virtualenv に Fabric をインストールして実行したら以下の様なエラーが発生した。
File "/Users/username/local/virtualenv/python2.7.5/lib/python2.7/site-packages/fabric/network.py", line 24, in <module>
import paramiko as ssh
File "/Users/username/local/virtualenv/python2.7.5/lib/python2.7/site-packages/paramiko/__init__.py", line 64, in <module>
from transport import SecurityOptions, Transport
File "/Users/username/local/virtualenv/python2.7.5/lib/python2.7/site-packages/paramiko/transport.py", line 33, in <module>
from paramiko import util
File "/Users/username/local/virtualenv/python2.7.5/lib/python2.7/site-packages/paramiko/util.py", line 33, in <module>
from paramiko.common import *
File "/Users/username/local/virtualenv/python2.7.5/lib/python2.7/site-packages/paramiko/common.py", line 98, in <module>
from Crypto import Random
File "/Users/username/local/virtualenv/python2.7.5/lib/python2.7/site-packages/Crypto/Random/__init__.py", line 29, in <module>
from Crypto.Random import _UserFriendlyRNG
File "/Users/username/local/virtualenv/python2.7.5/lib/python2.7/site-packages/Crypto/Random/_UserFriendlyRNG.py", line 38, in <module>
from Crypto.Random.Fortuna import FortunaAccumulator
File "/Users/username/local/virtualenv/python2.7.5/lib/python2.7/site-packages/Crypto/Random/Fortuna/FortunaAccumulator.py", line 39, in <module>
import FortunaGenerator
File "/Users/username/local/virtualenv/python2.7.5/lib/python2.7/site-packages/Crypto/Random/Fortuna/FortunaGenerator.py", line 35, in <module>
from Crypto.Util import Counter
File "/Users/username/local/virtualenv/python2.7.5/lib/python2.7/site-packages/Crypto/Util/Counter.py", line 59, in <module>
ImportError: dlopen(/Users/username/local/virtualenv/python2.7.5/lib/python2.7/site-packages/Crypto/Util/_counter.so, 2): Symbol not found: _PyObject_Del
Referenced from: /Users/username/local/virtualenv/python2.7.5/lib/python2.7/site-packages/Crypto/Util/_counter.so
Expected in: flat namespace
in /Users/username/local/virtualenv/python2.7.5/lib/python2.7/site-packages/Crypto/Util/_counter.so
There was a problem importing our SSH library (see traceback above).
Please make sure all dependencies are installed and importable.
以前作った virtualenv ではうまく動作するので色々調べていると、どうやら Xcode5.0 インストール以前にビルドした pycropto なら正常に動作しているらしい。Command Line Tool や gmp というライブラリも関係しているようなので virtualenv も含めてもう一度作り直したら動作した。
$ sudo xcode-select --install
$ brew upgrade
$ brew unlink gmp $ brew install gmp
$ brew link gmp
$ virtualenv --no-site-package venv
$ source venv/bin/activate
$ pip install fabric
...
$ fab -V
Fabric 1.8.0
Paramiko 1.12.0
$ python -c "import Crypto; print Crypto.__version__"
2.6.1
$ brew info gmp
gmp: stable 5.1.3
http://gmplib.org/
/usr/local/Cellar/gmp/5.0.5 (12 files, 2.3M)
/usr/local/Cellar/gmp/5.1.1 (12 files, 2.5M)
Built from source
/usr/local/Cellar/gmp/5.1.3 (12 files, 2.5M) *
Built from source
From: https://github.com/mxcl/homebrew/commits/master/Library/Formula/gmp.rb
==> Options
--32-bit
Build 32-bit only