[2noise/ChatTTS]按照readme,在Ubuntu 24.04上无法完成安装。

2025-11-17 845 views
9

clone repo cd repo 无论是用不用conda pip install -r requiemnets.txt 都无法完成 总是报错:

      building '_pywrapfst' extension
      creating build/temp.linux-x86_64-cpython-312/extensions
      g++-9 -std=c++17 -fPIC -I/opt/predata/ChatTTS/env/include -I/usr/include/python3.12 -c extensions/_pywrapfst.cpp -o build/temp.linux-x86_64-cpython-312/extensions/_pywrapfst.o -std=c++17 -Wno-register -Wno-deprecated-declarations -Wno-unused-function -Wno-unused-local-typedefs -funsigned-char
      extensions/_pywrapfst.cpp: In function ‘fst::ClosureType __pyx_f_10_pywrapfst__get_closure_type(const string&)’:
      extensions/_pywrapfst.cpp:10509:46: error: cannot convert ‘const string’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘bool’
      10509 |   __pyx_t_1 = (!(fst::script::GetClosureType(__pyx_v_closure_type, (&__pyx_v__closure_type)) != 0));
            |                                              ^~~~~~~~~~~~~~~~~~~~
            |                                              |
            |                                              const string {aka const std::__cxx11::basic_string<char>}
      In file included from /usr/include/fst/script/fstscript.h:29,
                       from extensions/_pywrapfst.cpp:1291:
      /usr/include/fst/script/getters.h:32:40: note:   initializing argument 1 of ‘fst::ClosureType fst::script::GetClosureType(bool)’
         32 | inline ClosureType GetClosureType(bool closure_plus) {
            |                                   ~~~~~^~~~~~~~~~~~
      extensions/_pywrapfst.cpp: In function ‘fst::EpsNormalizeType __pyx_f_10_pywrapfst__get_eps_norm_type(const string&)’:
      extensions/_pywrapfst.cpp:10860:51: error: cannot convert ‘const string’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘bool’
      10860 |   __pyx_t_1 = (!(fst::script::GetEpsNormalizeType(__pyx_v_eps_norm_type, (&__pyx_v__eps_norm_type)) != 0));
            |                                                   ^~~~~~~~~~~~~~~~~~~~~
            |                                                   |
            |                                                   const string {aka const std::__cxx11::basic_string<char>}
      In file included from /usr/include/fst/script/fstscript.h:29,
                       from extensions/_pywrapfst.cpp:1291:
      /usr/include/fst/script/getters.h:45:50: note:   initializing argument 1 of ‘fst::EpsNormalizeType fst::script::GetEpsNormalizeType(bool)’
         45 | inline EpsNormalizeType GetEpsNormalizeType(bool eps_norm_output) {
            |                                             ~~~~~^~~~~~~~~~~~~~~
      extensions/_pywrapfst.cpp: In function ‘fst::ReweightType __pyx_f_10_pywrapfst__get_reweight_type(const string&)’:
      extensions/_pywrapfst.cpp:11445:47: error: cannot convert ‘const string’ {aka ‘const std::__cxx11::basic_string<char>’} to ‘bool’
      11445 |   __pyx_t_1 = (!(fst::script::GetReweightType(__pyx_v_reweight_type, (&__pyx_v__reweight_type)) != 0));
            |                                               ^~~~~~~~~~~~~~~~~~~~~
            |                                               |
            |                                               const string {aka const std::__cxx11::basic_string<char>}
      In file included from /usr/include/fst/script/fstscript.h:29,
                       from extensions/_pywrapfst.cpp:1291:
      /usr/include/fst/script/getters.h:67:42: note:   initializing argument 1 of ‘fst::ReweightType fst::script::GetReweightType(bool)’
         67 | inline ReweightType GetReweightType(bool to_final) {
            |                                     ~~~~~^~~~~~~~
      extensions/_pywrapfst.cpp: In function ‘PyObject* __pyx_pf_10_pywrapfst_12EncodeMapper_16read(PyTypeObject*, PyObject*)’:
      extensions/_pywrapfst.cpp:24841:67: error: no match for ‘operator=’ (operand types are ‘std::unique_ptr<fst::script::EncodeMapperClass>’ and ‘fst::script::EncodeMapperClass*’)
      24841 |   __pyx_v__mapper = fst::script::EncodeMapperClass::Read(__pyx_t_1);
            |                                                                   ^
      In file included from /usr/include/c++/9/memory:80,
                       from extensions/_pywrapfst.cpp:1269:
      /usr/include/c++/9/bits/unique_ptr.h:305:7: note: candidate: ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Tp, _Dp>&&) [with _Tp = fst::script::EncodeMapperClass; _Dp = std::default_delete<fst::script::EncodeMapperClass>]’
        305 |       operator=(unique_ptr&& __u) noexcept
            |       ^~~~~~~~
      /usr/include/c++/9/bits/unique_ptr.h:305:30: note:   no known conversion for argument 1 from ‘fst::script::EncodeMapperClass*’ to ‘std::unique_ptr<fst::script::EncodeMapperClass>&&’
        305 |       operator=(unique_ptr&& __u) noexcept
            |                 ~~~~~~~~~~~~~^~~
      /usr/include/c++/9/bits/unique_ptr.h:325:2: note: candidate: ‘template<class _Up, class _Ep> typename std::enable_if<std::__and_<std::__and_<std::is_convertible<typename std::unique_ptr<_Up, _Ep>::pointer, typename std::__uniq_ptr_impl<_Tp, _Dp>::pointer>, std::__not_<std::is_array<_Up> > >, std::is_assignable<_T2&, _U2&&> >::value, std::unique_ptr<_Tp, _Dp>&>::type std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Up, _Ep>&&) [with _Up = _Up; _Ep = _Ep; _Tp = fst::script::EncodeMapperClass; _Dp = std::default_delete<fst::script::EncodeMapperClass>]’
        325 |  operator=(unique_ptr<_Up, _Ep>&& __u) noexcept
            |  ^~~~~~~~
      /usr/include/c++/9/bits/unique_ptr.h:325:2: note:   template argument deduction/substitution failed:
      extensions/_pywrapfst.cpp:24841:67: note:   mismatched types ‘std::unique_ptr<_Tp, _Dp>’ and ‘fst::script::EncodeMapperClass*’
      24841 |   __pyx_v__mapper = fst::script::EncodeMapperClass::Read(__pyx_t_1);
            |                                                                   ^
      In file included from /usr/include/c++/9/memory:80,
                       from extensions/_pywrapfst.cpp:1269:
      /usr/include/c++/9/bits/unique_ptr.h:334:7: note: candidate: ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(std::nullptr_t) [with _Tp = fst::script::EncodeMapperClass; _Dp = std::default_delete<fst::script::EncodeMapperClass>; std::nullptr_t = std::nullptr_t]’
        334 |       operator=(nullptr_t) noexcept
            |       ^~~~~~~~
      /usr/include/c++/9/bits/unique_ptr.h:334:17: note:   no known conversion for argument 1 from ‘fst::script::EncodeMapperClass*’ to ‘std::nullptr_t’
        334 |       operator=(nullptr_t) noexcept
            |                 ^~~~~~~~~
      extensions/_pywrapfst.cpp: In function ‘__pyx_obj_10_pywrapfst_EncodeMapper* __pyx_f_10_pywrapfst__read_EncodeMapper_from_string(std::string, int)’:
      extensions/_pywrapfst.cpp:26694:91: error: no match for ‘operator=’ (operand types are ‘std::unique_ptr<fst::script::EncodeMapperClass>’ and ‘fst::script::EncodeMapperClass*’)
      26694 |   __pyx_v__mapper = fst::script::EncodeMapperClass::Read(__pyx_v__sstrm, __pyx_k_pywrapfst);
            |                                                                                           ^
      In file included from /usr/include/c++/9/memory:80,
                       from extensions/_pywrapfst.cpp:1269:
      /usr/include/c++/9/bits/unique_ptr.h:305:7: note: candidate: ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Tp, _Dp>&&) [with _Tp = fst::script::EncodeMapperClass; _Dp = std::default_delete<fst::script::EncodeMapperClass>]’
        305 |       operator=(unique_ptr&& __u) noexcept
            |       ^~~~~~~~
      /usr/include/c++/9/bits/unique_ptr.h:305:30: note:   no known conversion for argument 1 from ‘fst::script::EncodeMapperClass*’ to ‘std::unique_ptr<fst::script::EncodeMapperClass>&&’
        305 |       operator=(unique_ptr&& __u) noexcept
            |                 ~~~~~~~~~~~~~^~~
      /usr/include/c++/9/bits/unique_ptr.h:325:2: note: candidate: ‘template<class _Up, class _Ep> typename std::enable_if<std::__and_<std::__and_<std::is_convertible<typename std::unique_ptr<_Up, _Ep>::pointer, typename std::__uniq_ptr_impl<_Tp, _Dp>::pointer>, std::__not_<std::is_array<_Up> > >, std::is_assignable<_T2&, _U2&&> >::value, std::unique_ptr<_Tp, _Dp>&>::type std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Up, _Ep>&&) [with _Up = _Up; _Ep = _Ep; _Tp = fst::script::EncodeMapperClass; _Dp = std::default_delete<fst::script::EncodeMapperClass>]’
        325 |  operator=(unique_ptr<_Up, _Ep>&& __u) noexcept
            |  ^~~~~~~~
      /usr/include/c++/9/bits/unique_ptr.h:325:2: note:   template argument deduction/substitution failed:
      extensions/_pywrapfst.cpp:26694:91: note:   mismatched types ‘std::unique_ptr<_Tp, _Dp>’ and ‘fst::script::EncodeMapperClass*’
      26694 |   __pyx_v__mapper = fst::script::EncodeMapperClass::Read(__pyx_v__sstrm, __pyx_k_pywrapfst);
            |                                                                                           ^
      In file included from /usr/include/c++/9/memory:80,
                       from extensions/_pywrapfst.cpp:1269:
      /usr/include/c++/9/bits/unique_ptr.h:334:7: note: candidate: ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(std::nullptr_t) [with _Tp = fst::script::EncodeMapperClass; _Dp = std::default_delete<fst::script::EncodeMapperClass>; std::nullptr_t = std::nullptr_t]’
        334 |       operator=(nullptr_t) noexcept
            |       ^~~~~~~~
      /usr/include/c++/9/bits/unique_ptr.h:334:17: note:   no known conversion for argument 1 from ‘fst::script::EncodeMapperClass*’ to ‘std::nullptr_t’
        334 |       operator=(nullptr_t) noexcept
            |                 ^~~~~~~~~
      extensions/_pywrapfst.cpp: In function ‘__pyx_obj_10_pywrapfst_Fst* __pyx_f_10_pywrapfst__read_Fst(PyObject*, int)’:
      extensions/_pywrapfst.cpp:43347:56: error: no match for ‘operator=’ (operand types are ‘std::unique_ptr<fst::script::FstClass>’ and ‘fst::script::FstClass*’)
      43347 |   __pyx_v__tfst = fst::script::FstClass::Read(__pyx_t_1);
            |                                                        ^
      In file included from /usr/include/c++/9/memory:80,
                       from extensions/_pywrapfst.cpp:1269:
      /usr/include/c++/9/bits/unique_ptr.h:305:7: note: candidate: ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Tp, _Dp>&&) [with _Tp = fst::script::FstClass; _Dp = std::default_delete<fst::script::FstClass>]’
        305 |       operator=(unique_ptr&& __u) noexcept
            |       ^~~~~~~~
      /usr/include/c++/9/bits/unique_ptr.h:305:30: note:   no known conversion for argument 1 from ‘fst::script::FstClass*’ to ‘std::unique_ptr<fst::script::FstClass>&&’
        305 |       operator=(unique_ptr&& __u) noexcept
            |                 ~~~~~~~~~~~~~^~~
      /usr/include/c++/9/bits/unique_ptr.h:325:2: note: candidate: ‘template<class _Up, class _Ep> typename std::enable_if<std::__and_<std::__and_<std::is_convertible<typename std::unique_ptr<_Up, _Ep>::pointer, typename std::__uniq_ptr_impl<_Tp, _Dp>::pointer>, std::__not_<std::is_array<_Up> > >, std::is_assignable<_T2&, _U2&&> >::value, std::unique_ptr<_Tp, _Dp>&>::type std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Up, _Ep>&&) [with _Up = _Up; _Ep = _Ep; _Tp = fst::script::FstClass; _Dp = std::default_delete<fst::script::FstClass>]’
        325 |  operator=(unique_ptr<_Up, _Ep>&& __u) noexcept
            |  ^~~~~~~~
      /usr/include/c++/9/bits/unique_ptr.h:325:2: note:   template argument deduction/substitution failed:
      extensions/_pywrapfst.cpp:43347:56: note:   mismatched types ‘std::unique_ptr<_Tp, _Dp>’ and ‘fst::script::FstClass*’
      43347 |   __pyx_v__tfst = fst::script::FstClass::Read(__pyx_t_1);
            |                                                        ^
      In file included from /usr/include/c++/9/memory:80,
                       from extensions/_pywrapfst.cpp:1269:
      /usr/include/c++/9/bits/unique_ptr.h:334:7: note: candidate: ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(std::nullptr_t) [with _Tp = fst::script::FstClass; _Dp = std::default_delete<fst::script::FstClass>; std::nullptr_t = std::nullptr_t]’
        334 |       operator=(nullptr_t) noexcept
            |       ^~~~~~~~
      /usr/include/c++/9/bits/unique_ptr.h:334:17: note:   no known conversion for argument 1 from ‘fst::script::FstClass*’ to ‘std::nullptr_t’
        334 |       operator=(nullptr_t) noexcept
            |                 ^~~~~~~~~
      extensions/_pywrapfst.cpp: In function ‘__pyx_obj_10_pywrapfst_Fst* __pyx_f_10_pywrapfst__read_Fst_from_string(std::string, int)’:
      extensions/_pywrapfst.cpp:43613:80: error: no match for ‘operator=’ (operand types are ‘std::unique_ptr<fst::script::FstClass>’ and ‘fst::script::FstClass*’)
      43613 |   __pyx_v__tfst = fst::script::FstClass::Read(__pyx_v__sstrm, __pyx_k_pywrapfst);
            |                                                                                ^
      In file included from /usr/include/c++/9/memory:80,
                       from extensions/_pywrapfst.cpp:1269:
      /usr/include/c++/9/bits/unique_ptr.h:305:7: note: candidate: ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Tp, _Dp>&&) [with _Tp = fst::script::FstClass; _Dp = std::default_delete<fst::script::FstClass>]’
        305 |       operator=(unique_ptr&& __u) noexcept
            |       ^~~~~~~~
      /usr/include/c++/9/bits/unique_ptr.h:305:30: note:   no known conversion for argument 1 from ‘fst::script::FstClass*’ to ‘std::unique_ptr<fst::script::FstClass>&&’
        305 |       operator=(unique_ptr&& __u) noexcept
            |                 ~~~~~~~~~~~~~^~~
      /usr/include/c++/9/bits/unique_ptr.h:325:2: note: candidate: ‘template<class _Up, class _Ep> typename std::enable_if<std::__and_<std::__and_<std::is_convertible<typename std::unique_ptr<_Up, _Ep>::pointer, typename std::__uniq_ptr_impl<_Tp, _Dp>::pointer>, std::__not_<std::is_array<_Up> > >, std::is_assignable<_T2&, _U2&&> >::value, std::unique_ptr<_Tp, _Dp>&>::type std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Up, _Ep>&&) [with _Up = _Up; _Ep = _Ep; _Tp = fst::script::FstClass; _Dp = std::default_delete<fst::script::FstClass>]’
        325 |  operator=(unique_ptr<_Up, _Ep>&& __u) noexcept
            |  ^~~~~~~~
      /usr/include/c++/9/bits/unique_ptr.h:325:2: note:   template argument deduction/substitution failed:
      extensions/_pywrapfst.cpp:43613:80: note:   mismatched types ‘std::unique_ptr<_Tp, _Dp>’ and ‘fst::script::FstClass*’
      43613 |   __pyx_v__tfst = fst::script::FstClass::Read(__pyx_v__sstrm, __pyx_k_pywrapfst);
            |                                                                                ^
      In file included from /usr/include/c++/9/memory:80,
                       from extensions/_pywrapfst.cpp:1269:
      /usr/include/c++/9/bits/unique_ptr.h:334:7: note: candidate: ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(std::nullptr_t) [with _Tp = fst::script::FstClass; _Dp = std::default_delete<fst::script::FstClass>; std::nullptr_t = std::nullptr_t]’
        334 |       operator=(nullptr_t) noexcept
            |       ^~~~~~~~
      /usr/include/c++/9/bits/unique_ptr.h:334:17: note:   no known conversion for argument 1 from ‘fst::script::FstClass*’ to ‘std::nullptr_t’
        334 |       operator=(nullptr_t) noexcept
            |                 ^~~~~~~~~
      extensions/_pywrapfst.cpp: In function ‘__pyx_obj_10_pywrapfst_Fst* __pyx_f_10_pywrapfst__map(__pyx_obj_10_pywrapfst_Fst*, __pyx_opt_args_10_pywrapfst__map*)’:
      extensions/_pywrapfst.cpp:51944:59: error: ‘TIMES’ is not a member of ‘fst::script::MapType’
      51944 |   __pyx_t_2 = (__pyx_v__map_type == fst::script::MapType::TIMES);
            |                                                           ^~~~~
      extensions/_pywrapfst.cpp:52018:166: error: request for member ‘release’ in ‘fst::script::Map((*(const fst::script::FstClass*)(&((std::__shared_ptr_access<fst::script::FstClass, __gnu_cxx::_S_atomic, false, false>*)(& __pyx_v_ifst->__pyx_obj_10_pywrapfst_Fst::_fst))->std::__shared_ptr_access<fst::script::FstClass, __gnu_cxx::_S_atomic, false, false>::operator*())), __pyx_v__map_type, __pyx_v_delta, __pyx_v_power, __pyx_v__weight)’, which is of pointer type ‘fst::script::FstClass*’ (maybe you meant to use ‘->’ ?)
      52018 |   __pyx_t_3 = ((PyObject *)__pyx_f_10_pywrapfst__init_XFst(fst::script::Map((*__pyx_v_ifst->_fst), __pyx_v__map_type, __pyx_v_delta, __pyx_v_power, __pyx_v__weight).release())); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3605, __pyx_L1_error)
            |                                                                                                                                                                      ^~~~~~~
      extensions/_pywrapfst.cpp: In function ‘__pyx_obj_10_pywrapfst_Fst* __pyx_f_10_pywrapfst_convert(__pyx_obj_10_pywrapfst_Fst*, int, __pyx_opt_args_10_pywrapfst_convert*)’:
      extensions/_pywrapfst.cpp:52736:80: error: no match for ‘operator=’ (operand types are ‘std::unique_ptr<fst::script::FstClass>’ and ‘fst::script::FstClass*’)
      52736 |   __pyx_v__tfst = fst::script::Convert((*__pyx_v_ifst->_fst), __pyx_v__fst_type);
            |                                                                                ^
      In file included from /usr/include/c++/9/memory:80,
                       from extensions/_pywrapfst.cpp:1269:
      /usr/include/c++/9/bits/unique_ptr.h:305:7: note: candidate: ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Tp, _Dp>&&) [with _Tp = fst::script::FstClass; _Dp = std::default_delete<fst::script::FstClass>]’
        305 |       operator=(unique_ptr&& __u) noexcept
            |       ^~~~~~~~
      /usr/include/c++/9/bits/unique_ptr.h:305:30: note:   no known conversion for argument 1 from ‘fst::script::FstClass*’ to ‘std::unique_ptr<fst::script::FstClass>&&’
        305 |       operator=(unique_ptr&& __u) noexcept
            |                 ~~~~~~~~~~~~~^~~
      /usr/include/c++/9/bits/unique_ptr.h:325:2: note: candidate: ‘template<class _Up, class _Ep> typename std::enable_if<std::__and_<std::__and_<std::is_convertible<typename std::unique_ptr<_Up, _Ep>::pointer, typename std::__uniq_ptr_impl<_Tp, _Dp>::pointer>, std::__not_<std::is_array<_Up> > >, std::is_assignable<_T2&, _U2&&> >::value, std::unique_ptr<_Tp, _Dp>&>::type std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Up, _Ep>&&) [with _Up = _Up; _Ep = _Ep; _Tp = fst::script::FstClass; _Dp = std::default_delete<fst::script::FstClass>]’
        325 |  operator=(unique_ptr<_Up, _Ep>&& __u) noexcept
            |  ^~~~~~~~
      /usr/include/c++/9/bits/unique_ptr.h:325:2: note:   template argument deduction/substitution failed:
      extensions/_pywrapfst.cpp:52736:80: note:   mismatched types ‘std::unique_ptr<_Tp, _Dp>’ and ‘fst::script::FstClass*’
      52736 |   __pyx_v__tfst = fst::script::Convert((*__pyx_v_ifst->_fst), __pyx_v__fst_type);
            |                                                                                ^
      In file included from /usr/include/c++/9/memory:80,
                       from extensions/_pywrapfst.cpp:1269:
      /usr/include/c++/9/bits/unique_ptr.h:334:7: note: candidate: ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(std::nullptr_t) [with _Tp = fst::script::FstClass; _Dp = std::default_delete<fst::script::FstClass>; std::nullptr_t = std::nullptr_t]’
        334 |       operator=(nullptr_t) noexcept
            |       ^~~~~~~~
      /usr/include/c++/9/bits/unique_ptr.h:334:17: note:   no known conversion for argument 1 from ‘fst::script::FstClass*’ to ‘std::nullptr_t’
        334 |       operator=(nullptr_t) noexcept
            |                 ^~~~~~~~~
      extensions/_pywrapfst.cpp: In function ‘void __pyx_f_10_pywrapfst__shortestdistance(__pyx_obj_10_pywrapfst_Fst*, std::vector<fst::script::WeightClass>*, __pyx_opt_args_10_pywrapfst__shortestdistance*)’:
      extensions/_pywrapfst.cpp:57942:105: error: ‘ANY’ is not a member of ‘fst::script::ArcFilterType’
      57942 |     __pyx_v__opts.reset(new fst::script::ShortestDistanceOptions(__pyx_t_3, fst::script::ArcFilterType::ANY, __pyx_v_nstate, __pyx_v_delta));
            |                                                                                                         ^~~
      extensions/_pywrapfst.cpp: In function ‘__pyx_obj_10_pywrapfst_Fst* __pyx_f_10_pywrapfst_8Compiler_compile(__pyx_obj_10_pywrapfst_Compiler*, int)’:
      extensions/_pywrapfst.cpp:60017:32: error: ‘CompileInternal’ is not a member of ‘fst::script’; did you mean ‘CompileFstInternal’?
      60017 |   __pyx_v__tfst = fst::script::CompileInternal((*__pyx_v_self->_sstrm), __pyx_k_pywrapfst, __pyx_v_self->_fst_type, __pyx_v_self->_arc_type, __pyx_v_self->_isymbols, __pyx_v_self->_osymbols, __pyx_v_self->_ssymbols, __pyx_v_self->_acceptor, __pyx_v_self->_keep_isymbols, __pyx_v_self->_keep_osymbols, __pyx_v_self->_keep_state_numbering, __pyx_v_self->_allow_negative_labels);
            |                                ^~~~~~~~~~~~~~~
            |                                CompileFstInternal
      extensions/_pywrapfst.cpp: In function ‘PyObject* __pyx_pf_10_pywrapfst_9FarReader_4open(PyTypeObject*, PyObject*)’:
      extensions/_pywrapfst.cpp:61000:69: error: no match for ‘operator=’ (operand types are ‘std::unique_ptr<fst::script::FarReaderClass>’ and ‘fst::script::FarReaderClass*’)
      61000 |   __pyx_v__tfar = fst::script::FarReaderClass::Open(__pyx_v__sources);
            |                                                                     ^
      In file included from /usr/include/c++/9/memory:80,
                       from extensions/_pywrapfst.cpp:1269:
      /usr/include/c++/9/bits/unique_ptr.h:305:7: note: candidate: ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Tp, _Dp>&&) [with _Tp = fst::script::FarReaderClass; _Dp = std::default_delete<fst::script::FarReaderClass>]’
        305 |       operator=(unique_ptr&& __u) noexcept
            |       ^~~~~~~~
      /usr/include/c++/9/bits/unique_ptr.h:305:30: note:   no known conversion for argument 1 from ‘fst::script::FarReaderClass*’ to ‘std::unique_ptr<fst::script::FarReaderClass>&&’
        305 |       operator=(unique_ptr&& __u) noexcept
            |                 ~~~~~~~~~~~~~^~~
      /usr/include/c++/9/bits/unique_ptr.h:325:2: note: candidate: ‘template<class _Up, class _Ep> typename std::enable_if<std::__and_<std::__and_<std::is_convertible<typename std::unique_ptr<_Up, _Ep>::pointer, typename std::__uniq_ptr_impl<_Tp, _Dp>::pointer>, std::__not_<std::is_array<_Up> > >, std::is_assignable<_T2&, _U2&&> >::value, std::unique_ptr<_Tp, _Dp>&>::type std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Up, _Ep>&&) [with _Up = _Up; _Ep = _Ep; _Tp = fst::script::FarReaderClass; _Dp = std::default_delete<fst::script::FarReaderClass>]’
        325 |  operator=(unique_ptr<_Up, _Ep>&& __u) noexcept
            |  ^~~~~~~~
      /usr/include/c++/9/bits/unique_ptr.h:325:2: note:   template argument deduction/substitution failed:
      extensions/_pywrapfst.cpp:61000:69: note:   mismatched types ‘std::unique_ptr<_Tp, _Dp>’ and ‘fst::script::FarReaderClass*’
      61000 |   __pyx_v__tfar = fst::script::FarReaderClass::Open(__pyx_v__sources);
            |                                                                     ^
      In file included from /usr/include/c++/9/memory:80,
                       from extensions/_pywrapfst.cpp:1269:
      /usr/include/c++/9/bits/unique_ptr.h:334:7: note: candidate: ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(std::nullptr_t) [with _Tp = fst::script::FarReaderClass; _Dp = std::default_delete<fst::script::FarReaderClass>; std::nullptr_t = std::nullptr_t]’
        334 |       operator=(nullptr_t) noexcept
            |       ^~~~~~~~
      /usr/include/c++/9/bits/unique_ptr.h:334:17: note:   no known conversion for argument 1 from ‘fst::script::FarReaderClass*’ to ‘std::nullptr_t’
        334 |       operator=(nullptr_t) noexcept
            |                 ^~~~~~~~~
      extensions/_pywrapfst.cpp: In function ‘PyObject* __pyx_pf_10_pywrapfst_9FarWriter_4create(PyTypeObject*, PyObject*, PyObject*, PyObject*)’:
      extensions/_pywrapfst.cpp:63777:86: error: no match for ‘operator=’ (operand types are ‘std::unique_ptr<fst::script::FarWriterClass>’ and ‘fst::script::FarWriterClass*’)
      63777 |   __pyx_v__tfar = fst::script::FarWriterClass::Create(__pyx_t_1, __pyx_t_2, __pyx_t_4);
            |                                                                                      ^
      In file included from /usr/include/c++/9/memory:80,
                       from extensions/_pywrapfst.cpp:1269:
      /usr/include/c++/9/bits/unique_ptr.h:305:7: note: candidate: ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Tp, _Dp>&&) [with _Tp = fst::script::FarWriterClass; _Dp = std::default_delete<fst::script::FarWriterClass>]’
        305 |       operator=(unique_ptr&& __u) noexcept
            |       ^~~~~~~~
      /usr/include/c++/9/bits/unique_ptr.h:305:30: note:   no known conversion for argument 1 from ‘fst::script::FarWriterClass*’ to ‘std::unique_ptr<fst::script::FarWriterClass>&&’
        305 |       operator=(unique_ptr&& __u) noexcept
            |                 ~~~~~~~~~~~~~^~~
      /usr/include/c++/9/bits/unique_ptr.h:325:2: note: candidate: ‘template<class _Up, class _Ep> typename std::enable_if<std::__and_<std::__and_<std::is_convertible<typename std::unique_ptr<_Up, _Ep>::pointer, typename std::__uniq_ptr_impl<_Tp, _Dp>::pointer>, std::__not_<std::is_array<_Up> > >, std::is_assignable<_T2&, _U2&&> >::value, std::unique_ptr<_Tp, _Dp>&>::type std::unique_ptr<_Tp, _Dp>::operator=(std::unique_ptr<_Up, _Ep>&&) [with _Up = _Up; _Ep = _Ep; _Tp = fst::script::FarWriterClass; _Dp = std::default_delete<fst::script::FarWriterClass>]’
        325 |  operator=(unique_ptr<_Up, _Ep>&& __u) noexcept
            |  ^~~~~~~~
      /usr/include/c++/9/bits/unique_ptr.h:325:2: note:   template argument deduction/substitution failed:
      extensions/_pywrapfst.cpp:63777:86: note:   mismatched types ‘std::unique_ptr<_Tp, _Dp>’ and ‘fst::script::FarWriterClass*’
      63777 |   __pyx_v__tfar = fst::script::FarWriterClass::Create(__pyx_t_1, __pyx_t_2, __pyx_t_4);
            |                                                                                      ^
      In file included from /usr/include/c++/9/memory:80,
                       from extensions/_pywrapfst.cpp:1269:
      /usr/include/c++/9/bits/unique_ptr.h:334:7: note: candidate: ‘std::unique_ptr<_Tp, _Dp>& std::unique_ptr<_Tp, _Dp>::operator=(std::nullptr_t) [with _Tp = fst::script::FarWriterClass; _Dp = std::default_delete<fst::script::FarWriterClass>; std::nullptr_t = std::nullptr_t]’
        334 |       operator=(nullptr_t) noexcept
            |       ^~~~~~~~
      /usr/include/c++/9/bits/unique_ptr.h:334:17: note:   no known conversion for argument 1 from ‘fst::script::FarWriterClass*’ to ‘std::nullptr_t’
        334 |       operator=(nullptr_t) noexcept
            |                 ^~~~~~~~~
      extensions/_pywrapfst.cpp: In function ‘int __pyx_pymod_exec__pywrapfst(PyObject*)’:
      extensions/_pywrapfst.cpp:76626:3: error: ‘FST_FLAGS_fst_error_fatal’ was not declared in this scope; did you mean ‘FLAGS_fst_error_fatal’?
      76626 |   FST_FLAGS_fst_error_fatal = 0;
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
            |   FLAGS_fst_error_fatal
      error: command '/usr/bin/g++-9' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pynini
  Running setup.py clean for pynini
Failed to build pynini
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (pynini)

这个readme里的安装到底是在什么环境下进行的啊?需要哪些准备呢?

回答

1

先不装pynini,等requirements.txt中指明platform linux的包,程序一样能够运行,但是不能用文本正规化。你的安装问题应该是你本机的问题,因为我们的测试环境是ubuntu-latest,每次都是通过的。

7

先不装pynini,等requirements.txt中指明platform linux的包,程序一样能够运行,但是不能用文本正规化。你的安装问题应该是你本机的问题,因为我们的测试环境是ubuntu-latest,每次都是通过的。

我是用ubuntu 24.04 server来做的。 如果就从安装OS开始,就会遇到我说的问题。因为系统缺少依赖的程序,根本pip install 不下去。我查这个错误,装各种依赖一大堆,最后还是不行,才来求助的。

3

那你可以看看我们的工作流,那个也是ubuntu server。

4

先不装pynini,等requirements.txt中指明platform linux的包,程序一样能够运行,但是不能用文本正规化。你的安装问题应该是你本机的问题,因为我们的测试环境是ubuntu-latest,每次都是通过的。

我是用ubuntu 24.04 server来做的。 如果就从安装OS开始,就会遇到我说的问题。因为系统缺少依赖的程序,根本pip install 不下去。我查这个错误,装各种依赖一大堆,最后还是不行,才来求助的。

        440 |       operator=(nullptr_t) noexcept
            |       ^~~~~~~~
      /usr/include/c++/13/bits/unique_ptr.h:440:17: note:   no known conversion for argument 1 from ‘fst::script::FarWriterClass*’ to ‘std::nullptr_t’
        440 |       operator=(nullptr_t) noexcept
            |                 ^~~~~~~~~
      extensions/_pywrapfst.cpp: In function ‘int __pyx_pymod_exec__pywrapfst(PyObject*)’:
      extensions/_pywrapfst.cpp:76626:3: error: ‘FST_FLAGS_fst_error_fatal’ was not declared in this scope; did you mean ‘FLAGS_fst_error_fatal’?
      76626 |   FST_FLAGS_fst_error_fatal = 0;
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
            |   FLAGS_fst_error_fatal
      error: command '/usr/bin/g++' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pynini
  Running setup.py clean for pynini
Failed to build pynini
ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (pynini)

和你一样的问题(出问题的是 python 3.12 版本死活不对)。找了很久都没有解决。最后,把环境清理,我把 python 切换到3.10 解决了。

5

看来是pynini对3.12的适配问题,我们的工作流确实没有3.12,最高3.11。