我需要一個Ubuntu的12.04創建一些虛擬的環境和裏面的另一個運行ansible(在這裏我不能安裝任何東西(沒有互聯網連接)如何在virtualenv中安裝ansible?
我試圖安裝Ansible虛擬環境中。
export venv_name="ansible_virt_env"
mkdir ~/venv && cd ~/venv
echo "Virtualenv ${venv_name} directory" > README
virtualenv --no-site-packages --prompt="ansible" ${venv_name:-venv}
. ~/venv/${venv_name:-venv}/bin/activate
~/venv/${venv_name:-venv}/bin/pip install -U pip
~/venv/${venv_name:-venv}/bin/pip install -U setuptools
~/venv/${venv_name:-venv}/bin/pip install ansible
但它失敗:
[email protected][RDE1.3]:~/venv# ~/venv/${venv_name:-venv}/bin/pip install -U setuptools
Collecting setuptools
/root/venv/ansible_virt_env/include/site/python2.7/cffi: 包裝libffi沒有在pkg配置搜索路徑發現 也許您應該將包含`libffi.pc' 的目錄添加到PKG_CONFIG_PATH環境變量 未找到任何軟件包'libffi' 未在pkg-config搜索路徑中找到軟件包libffi。
我安裝libffi-dev
: 的apt-get安裝libffi-dev的
而且ansible doen't工作: /根/ VENV/ansible_virt_env /斌/ ansible 錯誤!意外的異常:Jinja2的 完整回溯是:
Traceback (most recent call last):
File "/root/venv/ansible_virt_env/bin/ansible", line 75, in <module>
from ansible.cli.adhoc import AdHocCLI as mycli
File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/ansible/cli/adhoc.py", line 28, in <module>
from ansible.executor.task_queue_manager import TaskQueueManager
File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/ansible/executor/task_queue_manager.py", line 28, in <module>
from ansible.executor.play_iterator import PlayIterator
File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/ansible/executor/play_iterator.py", line 29, in <module>
from ansible.playbook.block import Block
File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/ansible/playbook/__init__.py", line 25, in <module>
from ansible.playbook.play import Play
File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/ansible/playbook/play.py", line 27, in <module>
from ansible.playbook.base import Base
File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/ansible/playbook/base.py", line 35, in <module>
from ansible.parsing.dataloader import DataLoader
File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/ansible/parsing/dataloader.py", line 32, in <module>
from ansible.parsing.vault import VaultLib
File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/ansible/parsing/vault/__init__.py", line 67, in <module>
from cryptography.hazmat.primitives.hashes import SHA256 as c_SHA256
File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/cryptography/hazmat/primitives/hashes.py", line 15, in <module>
from cryptography.hazmat.backends.interfaces import HashBackend
File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/cryptography/hazmat/backends/__init__.py", line 7, in <module>
import pkg_resources
File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/pkg_resources.py", line 2707, in <module>
working_set.require(__requires__)
File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/pkg_resources.py", line 686, in require
needed = self.resolve(parse_requirements(requirements))
File "/root/venv/ansible_virt_env/local/lib/python2.7/site-packages/distribute-0.6.24-py2.7.egg/pkg_resources.py", line 584, in resolve
raise DistributionNotFound(req)
DistributionNotFound: jinja2
而目前的Jinja2是:
[email protected][RDE1.3]:~/venv# /root/venv/ansible_virt_env/bin/python
Python 2.7.3 (default, Dec 18 2014, 19:10:20)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import jinja2
>>>
[email protected][RDE1.3]:~/venv# /root/venv/ansible_virt_env/bin/pip list
ansible (2.0.2.0)
cffi (1.6.0)
cryptography (1.3.2)
distribute (0.6.24)
enum34 (1.1.4)
idna (2.1)
ipaddress (1.0.16)
Jinja2 (2.8)
MarkupSafe (0.23)
paramiko (2.0.0)
pip (8.1.1)
pyasn1 (0.1.9)
pycparser (2.14)
pycrypto (2.6.1)
PyYAML (3.11)
setuptools (21.0.0)
six (1.10.0)
系統缺少'libffi'或其頭文件。如果您無法安裝所需的庫,我不知道如何處理它。 –
謝謝,我解決了這個問題,但仍然失敗 –
也許你的virtualenv被損壞了。嘗試在全新的virtualenv中安裝所有內容(首先升級pip本身)。 –