Ошибка команды установки Pybust Ubuntu 'x86_64-linux-gnu-gcc' с состоянием выхода 1
В Python 2.7.12 и Ubuntu 16.04.2 LTS я пытался следовать инструкциям @ PyFST Setup CMU для установки OpenFst и pyfst, но не удается с ошибкой
примечание: кандидат ожидает 16 аргументов, 15 при условии ошибки: команда 'x86_64-linux-gnu-gcc' не выполнена с состоянием выхода 1
а также попытался @ PyFST Setup OGI, но не удается с
`
ошибка: команда 'x86_64-linux-gnu-gcc' завершилась неудачно с состоянием выхода 1
Похоже, что OpenFst настроен правильно, потому что я могу видеть команды fst.
wilson@wilson-300V3A-300V4A-300V5A:~/demo/openfst-1.6.2$ ls ~/prefix/bin
fstarcsort fstencode fstprune fstsynchronize fstclosure fstepsnormalize fstpush fsttopsort fstcompile fstequal fstrandgen fstunion fstcompose fstequivalent fstrelabel pdtcompose fstconcat fstinfo fstreplace pdtexpand fstconnect fstintersect fstreverse pdtinfo fstconvert fstinvert fstreweight pdtreplace fstdeterminize fstmap fstrmepsilon pdtreverse fstdifference fstminimize fstshortestdistance pdtshortestpath fstdisambiguate fstprint fstshortestpath fstdraw
fstproject fstsymbols
Тем не менее, я получаю эту ошибку при попытке запустить sudo pip install pyfst
...(включает только фрагмент сообщения об ошибке, потому что он длиннее окна терминала)
/usr/local/include/fst/float-weight.h: в экземпляре 'static const fst::MinMaxWeightTpl& fst::MinMaxWeightTpl::NoWeight() [with T = float]': /usr/local/include/fst/float-weight.h:615:72: требуется от 'fst::MinMaxWeightTpl fst::Plus(const fst::MinMaxWeightTpl&, const fst::MinMaxWeightTpl&) [with T = float]' /usr/local/include/fst/float-weight.h:621:28: требуется отсюда /usr/local/include/fst/float-weight.h:576:69: ошибка: NumberBad не является членом статического объекта fst::FloatLimits const MinMaxWeightTpl no_weight(FloatLimits::NumberBad()); ^ /usr/local/include/fst/float-weight.h: в экземпляре 'static const fst::MinMaxWeightTpl& fst::MinMaxWeightTpl::NoWeight() [with T = double]': / usr / local / include / fst / float-weight.h: 615: 72: требуется из 'fst:: MinMaxWeightTpl fst:: Plus (const fst:: MinMaxWeightTpl &, const fst:: MinMaxWeightTpl &) [с T = double]' /usr/local/include/fst/float-weight.h:626:29: требуется здесь /usr/local/include/fst/float-weight.h:576:69: ошибка: NumberBad не является членом fst::FloatLimits ошибка: команда 'x86_64-linux-gnu-gcc' завершилась неудачно с состоянием выхода 1
----------------------------------------
Команда "/usr/bin/python -u -c " импортирует setuptools, tokenize; file = '/tmp/pip-build-DngJ9w/pyfst/ setup.py'; f = getattr (tokenize, 'open', open) (файл);code=f.read().replace('\r\n', '\n');f.close();exec(compile(код, файл, 'exec'))" install --record /tmp/pip-FFhvRI-record/install-record.txt --single- внешне управляемая версия --compile"завершилась ошибкой с кодом ошибки 1 в /tmp/pip-build-DngJ9w/pyfst/
Или я попробую следующее:
wilson@wilson-300V3A-300V4A-300V5A:~/demo/openfst-1.6.2$ echo "export PREFIX=$(cd; pwd)/prefix" >> ~/.bashrc
wilson@wilson-300V3A-300V4A-300V5A:~/demo/openfst-1.6.2$
wilson@wilson-300V3A-300V4A-300V5A:~/demo/openfst-1.6.2$ echo 'export CPLUS_INCLUDE_PATH=$PREFIX/include:$CPLUS_INCLUDE_PATH
> export LIBRARY_PATH=$PREFIX/lib:$LIBRARY_PATH
> export LIBRARY_PATH=$PREFIX/lib/fst:$LIBRARY_PATH
> export LD_LIBRARY_PATH=$PREFIX/lib:$LD_LIBRARY_PATH
> export LD_LIBRARY_PATH=$PREFIX/lib/fst:$LD_LIBRARY_PATH
> export PATH=$PREFIX/bin:$PATH
> export PYTHONPATH=$PREFIX/lib/python2.7/site-packages:$PYTHONPATH' >> ~/.bashrc
Который, кажется, работает нормально
wilson@wilson-300V3A-300V4A-300V5A:~/demo/openfst-1.6.2$ echo $PREFIX
/ Главная / Уилсона / префикс
wilson@wilson-300V3A-300V4A-300V5A:~/demo/openfst-1.6.2$ cd $PREFIX
wilson@wilson-300V3A-300V4A-300V5A:~/prefix$ wget http://demo.clab.cs.cmu.edu/cdyer/pyfst-0.2.5.tar.gz
--2017-05-21 18: 37: 34-- http://demo.clab.cs.cmu.edu/cdyer/pyfst-0.2.5.tar.gz Решение demo.clab.cs.cmu.edu (demo.clab.cs.cmu.edu)... 128.2.220.95 Подключение к demo.clab.cs.cmu.edu (demo.clab.cs.cmu.edu)|128.2.220.95|:80... подключено. HTTP-запрос отправлен, ожидая ответа... 200 OK Длина: 148781 (145K) [application/x-gzip] Сохранение в: 'pyfst-0.2.5.tar.gz.1'
pyfst-0.2.5.tar.gz. 100%[===================>] 145,29 КБ 720 КБ / с за 0,2 с
2017-05-21 18:37:34 (720 КБ / с) - 'pyfst-0.2.5.tar.gz.1' сохранен [148781/148781]
wilson@wilson-300V3A-300V4A-300V5A:~/prefix$ tar xzf pyfst-0.2.5.tar.gz
wilson@wilson-300V3A-300V4A-300V5A:~/prefix$ cd pyfst-0.2.5/
wilson@wilson-300V3A-300V4A-300V5A:~/prefix/pyfst-0.2.5$ python setup.py
install --prefix = $ PREFIX запуск установки запуск сборка build_py запуск build_ext сборка расширение 'fst._fst' x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict- псевдоним -Wdate-time -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror= формат-безопасность -fPIC -I/usr/include/python2.7 -c fst/_fst.cpp -o build/temp.linux-x86_64-2.7/fst/_fst.o -std= C++ 11 cc1plus: предупреждение: параметр командной строки '-Wstrict-prototypes' действителен для C / ObjC, но не для C++ fst/_fst.cpp: In function ' PyObject* __pyx_pf_3fst_4_fst_12StdVectorFst_120draw(__pyx_obj_3fst_4_fst_StdVectorFst*, __pyx_obj_3fst_4_fst_SymbolTable*, __pyx_obj_3fst_4_fst_SymbolTable*, __pyx_obj_3fst_4_fst_SymbolTable*) ': FST /_fst.cpp:17681:191: ошибка: нет функции соответствия для вызова' FST:: FstDrawer>
:: FstDrawer (fst:: StdVectorFst &, fst:: SymbolTable * &, fst:: SymbolTable * &, fst:: SymbolTable * &, int, std:: __ cxx11:: string &, double, double, int, int, double, double, int, int, int) 'ble, __pyx_v_ssyms_table, 0, __pyx_t_5, 8.5, 11.0, 1, 0, 0,40, 0,25, 14, 5, 0); ^ В файле, включенном из /usr/local/include/fst/script/draw.h:10:0, из fst/_fst.cpp:242: /usr/local/include/fst/script/draw-impl.h:29:3: примечание: кандидат: fst:: FstDrawer:: FstDrawer (const fst:: Fst &, const fst:: SymbolTable *, const fst:: SymbolTable *, const fst:: SymbolTable *, bool, const string &, float, float, bool, bool, float, float, int, int, const string &, bool) [with Arc = fst:: ArcTpl>; std:: __cxx11:: string = std:: __cxx11:: basic_string] FstDrawer (const Fst & fst, const SymbolTable isyms, ^ /usr/local/include/fst/script/draw-impl.h:29:3: note: кандидат ожидает 16 аргументов, 15 при условии FST / _fst.cpp: В функции 'PyObject __pyx_pf_3fst_4_fst_12LogVectorFst_120draw (__ pyx_obj_3fst_4_fst_LogVectorFst *, __pyx_obj_3fst_4_fst_SymbolTable *, __pyx_obj_3fst_4_fst_SymbolTable *, __pyx_obj_3fst_4_fst_SymbolTable *)': FST /_fst.cpp:30639:191: ошибка: нет подходящей функции для вызова to 'fst::FstDrawer >::FstDrawer(fst::VectorFst > >&, fst::SymbolTable*&, fst::SymbolTable*&, fst::SymbolTable*&, int, std::__cxx11::string&, double, double, int, int, double, double, int, int, int) 'ble, __pyx_v_ssyms_table, 0, __pyx_t_5, 8.5, 11.0, 1, 0, 0,40, 0,25, 14, 5, 0); ^ В файле, включенном из /usr/local/include/fst/script/draw.h:10:0, из fst/_fst.cpp:242: /usr/local/include/fst/script/draw-impl.h:29:3: примечание: кандидат: fst::FstDrawer::FstDrawer(const fst::Fst&, const fst::SymbolTable*, const fst::SymbolTable*, const fst::SymbolTable*, bool, const string&, float, float, bool, bool, float, float, int, int, const string&, bool) [with Arc = fst::ArcTpl; std::__cxx11::string = std::__cxx11::basic_string] FstDrawer(const Fst &fst, const SymbolTable *isyms, ^ /usr/local/include/fst/script/draw-impl.h:29:3: примечание: кандидат ожидает 16 аргументов, 15 при условии ошибки: команда 'x86_64-linux-gnu-gcc' завершилась неудачно с состоянием выхода 1
1 ответ
Не используйте PyFST, он устарел. Привязки Python включены в OpenFST начиная с версии 1.5.1. Просто установите OpenFST как обычно, с --enable-python
:
./configure --enable-python
make
sudo make install
Это должно поместить библиотеки Python в соответствующие места.
Некоторая дополнительная информация доступна на веб-сайте OpenFST.