2016-06-08 33 views
0

我从另一个开发人员那里得到了一个项目,他现在无法访问。 当流浪时它开始构建盒子,但它似乎总是崩溃。Ansible DistributionNotFound加密和其他错误

第一个问题是丢失ImportError: No module named markupsafe,但我可以解决这一个手册。 问题是,下一个是DistributionNotFound: The 'cryptography>=1.1' distribution was not found and is required by paramiko

所以我似乎是在碰运气的错误碰撞。有任何想法吗?

控制台日志:

==> default: Running provisioner: shell... 
default: Running: inline script 
==> default: stdin: is not a tty 
==> default: ERROR! Unexpected Exception: The 'cryptography>=1.1' distribution was not found and is required by paramiko 
==> default: the full traceback was: 
==> default: 
==> default: Traceback (most recent call last): 
==> default: File "/usr/local/bin/ansible-playbook", line 79, in <module> 
==> default:  mycli = getattr(__import__("ansible.cli.%s" % sub, fromlist=[myclass]), myclass) 
==> default: File "/usr/local/lib/python2.7/dist-packages/ansible/cli/playbook.py", line 30, in <module> 
==> default:  from ansible.executor.playbook_executor import PlaybookExecutor 
==> default: File "/usr/local/lib/python2.7/dist-packages/ansible/executor/playbook_executor.py", line 27, in <module> 
==> default:  from ansible.executor.task_queue_manager import TaskQueueManager 
==> default: File "/usr/local/lib/python2.7/dist-packages/ansible/executor/task_queue_manager.py", line 28, in <module> 
==> default:  from ansible.executor.play_iterator import PlayIterator 
==> default: File "/usr/local/lib/python2.7/dist-packages/ansible/executor/play_iterator.py", line 29, in <module> 
==> default:  from ansible.playbook.block import Block 
==> default: File "/usr/local/lib/python2.7/dist-packages/ansible/playbook/__init__.py", line 25, in <module> 
==> default:  from ansible.playbook.play import Play 
==> default: File "/usr/local/lib/python2.7/dist-packages/ansible/playbook/play.py", line 27, in <module> 
==> default:  from ansible.playbook.base import Base 
==> default: File "/usr/local/lib/python2.7/dist-packages/ansible/playbook/base.py", line 35, in <module> 
==> default:  from ansible.parsing.dataloader import DataLoader 
==> default: File "/usr/local/lib/python2.7/dist-packages/ansible/parsing/dataloader.py", line 33, in <module> 
==> default:  from ansible.parsing.vault import VaultLib 
==> default: File "/usr/local/lib/python2.7/dist-packages/ansible/parsing/vault/__init__.py", line 67, in <module> 
==> default:  from cryptography.hazmat.primitives.hashes import SHA256 as c_SHA256 
==> default: File "/usr/lib/python2.7/dist-packages/cryptography/hazmat/primitives/hashes.py", line 20, in <module> 
==> default:  from cryptography.hazmat.backends.interfaces import HashBackend 
==> default: File "/usr/lib/python2.7/dist-packages/cryptography/hazmat/backends/__init__.py", line 16, in <module> 
==> default:  import pkg_resources 
==> default: File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2927, in <module> 
==> default:  @_call_aside 
==> default: File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2913, in _call_aside 
==> default:  f(*args, **kwargs) 
==> default: File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2940, in _initialize_master_working_set 
==> default:  working_set = WorkingSet._build_master() 
==> default: File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 637, in _build_master 
==> default:  return cls._build_from_requirements(__requires__) 
==> default: File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 650, in _build_from_requirements 
==> default:  dists = ws.resolve(reqs, Environment()) 
==> default: File "/usr/local/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 829, in resolve 
==> default:  raise DistributionNotFound(req, requirers) 
==> default: DistributionNotFound: The 'cryptography>=1.1' distribution was not found and is required by paramiko 
The SSH command responded with a non-zero exit status. Vagrant 
assumes that this means the command failed. The output for this command 
should be in the log above. Please read the output to determine what 
went wrong. 

注意:在做vagrant ssh做本地安装比它说,它已经满意:

[email protected]:/vagrant$ pip install cryptography 
Requirement already satisfied (use --upgrade to upgrade): cryptography in /usr/lib/python2.7/dist-packages 
Requirement already satisfied (use --upgrade to upgrade): cffi>=0.8 in /usr/lib/python2.7/dist-packages (from cryptography) 
Requirement already satisfied (use --upgrade to upgrade): six>=1.4.1 in /usr/local/lib/python2.7/dist-packages (from cryptography) 
Requirement already satisfied (use --upgrade to upgrade): pycparser in /usr/local/lib/python2.7/dist-packages (from cffi>=0.8->cryptography) 
+0

我最近回答了这个在这里:http://stackoverflow.com/questions/37426055/ansible-2-x-install-fails-due-to-paramiko- 2-0-dependency-changes/37426098#37426098 –

+0

你可以这样做吗?pip install -U cryptography'如果你有任何错误,那么你可以安装'sudo apt-get install libffi-dev' –

+0

哦,我想我假设他已经尝试过并失败了。你用'pip'升级'cryptography'还有吗? –

回答

2

你缺少一些开发库。在于Debian/Ubuntu系统,输入:

sudo apt-get install build-essential libssl-dev libffi-dev python-dev