Установка PyYAML и libyaml без рута или sudo

Мне нужно настроить PyYAML с привязками libyaml. Я работаю над Red Hat Enterprise Linux Client с выпуском 5.7, и у меня установлена ​​локальная копия Enthought Python 7.3.2 под /tools/Devel/epd_free-7.3-2rh5-x86_64и добавили /tools/Devel/epd_free-7.3-2rh5-x86_64/bin в $PATH

Я работаю над этой локальной копией, так как у меня нет прав root или sudo на машине.

Для установки libyaml я сделал:

tar -xvzf yaml-0.1.5.tar.gz
cd yaml-0.1.5
./configure prefix=/tools/Devel/epd_free-7.3-2-rh5-x86_64
make
make install

который создал

/tools/Devel/epd_free-7.3-2rh5-x86_64/include/yaml.h

так же как

/tools/Devel/epd_free-7.3-2rh5-x86_64/lib/libyaml-0.so.2
/tools/Devel/epd_free-7.3-2rh5-x86_64/lib/libyaml-0.so.2.0.3
/tools/Devel/epd_free-7.3-2rh5-x86_64/lib/libyaml.a
/tools/Devel/epd_free-7.3-2rh5-x86_64/lib/libyaml.la
/tools/Devel/epd_free-7.3-2rh5-x86_64/lib/libyaml.so
/tools/Devel/epd_free-7.3-2rh5-x86_64/lib/pkgconfig

Однако, когда я пытаюсь установить PyYAML, я получаю

pip install PyYAML

Downloading/unpacking PyYAML
  Downloading PyYAML-3.11.tar.gz (248kB): 248kB downloaded
  Running setup.py (path:/tmp/pip_build_greglac/PyYAML/setup.py) egg_info for package PyYAML

Installing collected packages: PyYAML
  Running setup.py install for PyYAML
    checking if libyaml is compilable
    gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -O2 -fPIC -I/tools/Devel/epd_free-7.3-2-rh5-x86_64/include/python2.7 -c build/temp.linux-x86_64-2.7/check_libyaml.c -o build/temp.linux-x86_64-2.7/check_libyaml.o
    build/temp.linux-x86_64-2.7/check_libyaml.c:2:18: error: yaml.h: No such file or directory
    build/temp.linux-x86_64-2.7/check_libyaml.c: In function âmainâ:
    build/temp.linux-x86_64-2.7/check_libyaml.c:5: error: âyaml_parser_tâ undeclared (first use in this function)
    build/temp.linux-x86_64-2.7/check_libyaml.c:5: error: (Each undeclared identifier is reported only once
    build/temp.linux-x86_64-2.7/check_libyaml.c:5: error: for each function it appears in.)
    build/temp.linux-x86_64-2.7/check_libyaml.c:5: error: expected â;â before âparserâ
    build/temp.linux-x86_64-2.7/check_libyaml.c:6: error: âyaml_emitter_tâ undeclared (first use in this function)
    build/temp.linux-x86_64-2.7/check_libyaml.c:6: error: expected â;â before âemitterâ
    build/temp.linux-x86_64-2.7/check_libyaml.c:8: error: âparserâ undeclared (first use in this function)
    build/temp.linux-x86_64-2.7/check_libyaml.c:11: error: âemitterâ undeclared (first use in this function)

    libyaml is not found or a compiler error: forcing --without-libyaml
    (if libyaml is installed correctly, you may need to
     specify the option --include-dirs or uncomment and
     modify the parameter include_dirs in setup.cfg)

Successfully installed PyYAML
Cleaning up...

Я предполагаю, что это потому, что PyYAML ищет libyaml в местоположении по умолчанию. Можно ли указать местоположение libyaml для установки pyyaml?

2 ответа

Исходя из идеи ответа здесь эти шаги работали для меня

pip install --user ruamel.yaml

тогда замени в своем скрипте

import yaml

с:

from ruamel.yaml import YAML
yaml=YAML(typ='safe')

Использовать https://pypi.python.org/simple/pyyaml/ и загрузка PyYAML-3.11.tar.gz у меня работала в windows

Затем я извлек его и после открытия я написал команду setup.py установить в этом месте

поиск других пакетов в https://pypi.python.org/simple

Другие вопросы по тегам