flintrock - ошибка либсодиума
Когда я пытаюсь использовать Flintrock на OSX 10.12 Sierra, я получаю сообщение об ошибке Symbol not found: _crypto_pwhash_str_alg
$ flintrock
Traceback (most recent call last):
File "/Users/stephen/anaconda3/bin/flintrock", line 11, in <module>
load_entry_point('Flintrock==0.10.0.dev0', 'console_scripts', 'flintrock')()
File "/Users/stephen/anaconda3/lib/python3.6/site-packages/pkg_resources/__init__.py", line 570, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/Users/stephen/anaconda3/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2751, in load_entry_point
return ep.load()
File "/Users/stephen/anaconda3/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2405, in load
return self.resolve()
File "/Users/stephen/anaconda3/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2411, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "/Users/stephen/anaconda3/lib/python3.6/site-packages/Flintrock-0.10.0.dev0-py3.6.egg/flintrock/__main__.py", line 5, in <module>
from .flintrock import main
File "/Users/stephen/anaconda3/lib/python3.6/site-packages/Flintrock-0.10.0.dev0-py3.6.egg/flintrock/flintrock.py", line 25, in <module>
from . import ec2
File "/Users/stephen/anaconda3/lib/python3.6/site-packages/Flintrock-0.10.0.dev0-py3.6.egg/flintrock/ec2.py", line 17, in <module>
from .core import FlintrockCluster
File "/Users/stephen/anaconda3/lib/python3.6/site-packages/Flintrock-0.10.0.dev0-py3.6.egg/flintrock/core.py", line 12, in <module>
import paramiko
File "/Users/stephen/anaconda3/lib/python3.6/site-packages/paramiko-2.3.1-py3.6.egg/paramiko/__init__.py", line 31, in <module>
File "/Users/stephen/anaconda3/lib/python3.6/site-packages/paramiko-2.3.1-py3.6.egg/paramiko/transport.py", line 57, in <module>
File "/Users/stephen/anaconda3/lib/python3.6/site-packages/paramiko-2.3.1-py3.6.egg/paramiko/ed25519key.py", line 22, in <module>
File "/Users/stephen/anaconda3/lib/python3.6/site-packages/PyNaCl-1.2.0-py3.6-macosx-10.9-x86_64.egg/nacl/signing.py", line 19, in <module>
import nacl.bindings
File "/Users/stephen/anaconda3/lib/python3.6/site-packages/PyNaCl-1.2.0-py3.6-macosx-10.9-x86_64.egg/nacl/bindings/__init__.py", line 17, in <module>
from nacl.bindings.crypto_box import (
File "/Users/stephen/anaconda3/lib/python3.6/site-packages/PyNaCl-1.2.0-py3.6-macosx-10.9-x86_64.egg/nacl/bindings/crypto_box.py", line 18, in <module>
from nacl._sodium import ffi, lib
ImportError: dlopen(/Users/stephen/anaconda3/lib/python3.6/site-packages/PyNaCl-1.2.0-py3.6-macosx-10.9-x86_64.egg/nacl/_sodium.abi3.so, 2): Symbol not found: _crypto_pwhash_str_alg
Referenced from: /Users/stephen/anaconda3/lib/python3.6/site-packages/PyNaCl-1.2.0-py3.6-macosx-10.9-x86_64.egg/nacl/_sodium.abi3.so
Expected in: flat namespace
in /Users/stephen/anaconda3/lib/python3.6/site-packages/PyNaCl-1.2.0-py3.6-macosx-10.9-x86_64.egg/nacl/_sodium.abi3.so
После небольшой отладки я получил минимальный шаг воспроизведения, как этот.
$ python -c "from nacl._sodium import ffi, lib"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: dlopen(/Users/stephen/anaconda3/lib/python3.6/site-packages/PyNaCl-1.2.0-py3.6-macosx-10.9-x86_64.egg/nacl/_sodium.abi3.so, 2): Symbol not found: _crypto_pwhash_str_alg
Referenced from: /Users/stephen/anaconda3/lib/python3.6/site-packages/PyNaCl-1.2.0-py3.6-macosx-10.9-x86_64.egg/nacl/_sodium.abi3.so
Expected in: flat namespace
in /Users/stephen/anaconda3/lib/python3.6/site-packages/PyNaCl-1.2.0-py3.6-macosx-10.9-x86_64.egg/nacl/_sodium.abi3.so
Так что, похоже, это связано с проблемой привязки libsodium python, но я понятия не имею, как ее решить.
Любые комментарии или ссылки будут оценены. Спасибо за чтение этого.