2016-12-16 8 views
1

Я использую CentOS 6.4 с Python 2.6.6 для запуска Ansible 2.3.0. Но когда я иду в мой питоне виртуального окр который имеет питон 3.4.1 и запустить «анзибль --version» Я получаю следующее сообщение об ошибке:Нет модуля с именем yaml in python virtual env

Traceback (most recent call last): 
File "/home/namaaror/Desktop/githubansible/bin/ansible", line 80, in <module> 
from ansible.cli.adhoc import AdHocCLI as mycli 
File "/home/namanarora/Desktop/github/ansible/lib/cli/__init__.py", line 28, in <module> 
import yaml 
ImportError: No module named 'yaml' 

Я даже попытался установить PyYAML по В ImportError: No Module named yaml | Ansible но ошибка все еще сохраняется. Связано ли это с каталогом установки yaml и sys.path?

+0

Какова ваша цель? – techraf

+0

@techraf запускает загружаемые книги с python 3.4 в centos 6.4 – Naman

+2

Был ли ваш виртуальный env активен, когда вы запускаете 'pip install pyyaml'? Если вы запустили его с помощью 'sudo', как в вашем ref, скорее всего, это не так. Затем повторите попытку без 'sudo' – damienfrancois

ответ

1

После активации virtualenv (через ansible или нет), вы не должны использовать sudo установить что-то с pip как всем virtualenv и все его каталоги принадлежат вам.

В самом деле, если вы используете sudo вы, вероятно, не использовать virtualenv-х pip:

$ mktmpenv 
Using real prefix '/opt/python/2.7' 
New python executable in /home/venv/tmp-ef9b4ef621d87221/bin/python 
Installing setuptools, pip, wheel...done. 
This is a temporary environment. It will be deleted when you run 'deactivate'. 
(tmp-ef9b4ef621d87221) $ which pip 
/home/venv/tmp-ef9b4ef621d87221/bin/pip 
(tmp-ef9b4ef621d87221) $ sudo which pip 
[sudo] password for root: 
/usr/local/bin/pip 

(ответ может быть такой же, в зависимости от сценариев входа и PATH суперпользователя). Таким образом, вы не должны использовать sudo pip install при установке вещи после активации virtualenv, просто используйте

pip install .... 
-1

Проверьте ваши Python3 Расс-пакеты каталогов /usr/local/lib/pythonX.XX/dist-packages, чтобы увидеть, если PyYAML является установлен там.

Если их нет, то вы можете установить их с sudo apt-get install python3-yaml (возможно, потребуется Python3-Setuptools и python3 колеса, а)