2013-03-19 6 views
0

установлены все зависимости для JujuImportError: не может импортировать имя CSafeLoader

pip install pyparsing==1.5.7 
pip install pyOpenSSL PyYAML txaws pydot oauth txzookeeper zc-zookeeper-static 
pip install juju 

Все установленные в порядке, но когда я начинаю juju, терпит неудачу со следующей ошибкой:

(jujuapp) ± juju                       
Traceback (most recent call last): 
    File "/Users/millisami/.virtualenvs/jujuapp/bin/juju", line 4, in <module> 
    from juju.control import main 
    File "/Users/millisami/.virtualenvs/jujuapp/lib/python2.7/site-packages/juju/control/__init__.py", line 7, in <module> 
    from .utils import ParseError 
    File "/Users/millisami/.virtualenvs/jujuapp/lib/python2.7/site-packages/juju/control/utils.py", line 8, in <module> 
    from juju.state.environment import EnvironmentStateManager 
    File "/Users/millisami/.virtualenvs/jujuapp/lib/python2.7/site-packages/juju/state/environment.py", line 8, in <module> 
    from juju.environment.config import EnvironmentsConfig 
    File "/Users/millisami/.virtualenvs/jujuapp/lib/python2.7/site-packages/juju/environment/config.py", line 8, in <module> 
    from juju.lib import serializer 
    File "/Users/millisami/.virtualenvs/jujuapp/lib/python2.7/site-packages/juju/lib/serializer.py", line 1, in <module> 
    from yaml import CSafeLoader, CSafeDumper, Mark 
ImportError: cannot import name CSafeLoader 

Что это за ошибка? Я нахожусь на Mac 10.6, python и pip, установленный через доморощенный.

ответ

3

Я просто столкнулся с этим вопросом 10.8; juju использует привязки libyaml в PyYaml, поэтому ему необходимо установить PyYaml --with-libyaml, что требует больше, чем на Mac. Вот как я получил это работает:

  • brew install libyaml с доморощенного
  • Скачать PyYAML источник (instructions)

Теперь измените [pyyaml-install-dir]/setup.cfg так:

# List of directories to search for 'yaml.h' (separated by ':'). 
include_dirs=/usr/local/Cellar/libyaml/0.1.4/include/ 

# List of directories to search for 'libyaml.a' (separated by ':'). 
library_dirs=/usr/local/Cellar/libyaml/0.1.4/lib/ 

Так он может найти свой доморощенный установка libyaml. Затем необходимо также установить Cython ..

  • sudo pip install cython

и, наконец, ..

  • sudo python setup.py --with-libyaml install (в реж PyYAML)

Теперь Амулет должен работать!

+0

Спасибо, с этими битами церемонии он был установлен. – Autodidact

Смежные вопросы