kylebgorman / pynini

Read-only mirror of Pynini
http://pynini.opengrm.org
Apache License 2.0
118 stars 27 forks source link

Cannot install pynini 2.1.4 under ubuntu 22.04 #57

Closed dchaplinsky closed 1 year ago

dchaplinsky commented 1 year ago

I've built openfst 1.8.2 like this:

./configure --enable-far=true --enable-grm=true --enable-python
sudo make -j40
sudo make install

which is kind of successful:

$ fstinfo --help
Prints out information about an FST.

  Usage: fstinfo [in.fst]

PROGRAM FLAGS:

  --arc_filter: type = std::string, default = "any"
  Arc filter: one of "any", "epsilon", "iepsilon", "oepsilon"; this only affects the counts of (co)accessible states, connected states, and (strongly) connected components
  --fst_verify: type = bool, default = true
  Verify FST sanity
  --info_type: type = std::string, default = "auto"
  Info format: one of "auto", "long", "short", "fast".
auto: Equivalent to "long" if the FST is an ExpandedFst, otherwise "short".
long: Print all properties, computing if unknown; this may be slow for large FSTs.
short: Print only type and SymbolTable info.
fast: Print only info that is fast to obtain (by reading only the file header); this is more info than "short", but less than "long".
  --test_properties: type = bool, default = true
  Compute property values (if unknown to FST)

LIBRARY FLAGS:

Flags from: flags.cc
  --help: type = bool, default = false
  show usage information
  --helpshort: type = bool, default = false
  show brief usage information
  --tmpdir: type = std::string, default = "/tmp"
  temporary directory
  --v: type = int32_t, default = 0
  verbosity level

Flags from: fst.cc
  --fst_align: type = bool, default = false
  Write FST data aligned where appropriate
  --fst_default_cache_gc: type = bool, default = true
  Enable garbage collection of cache
  --fst_default_cache_gc_limit: type = int64_t, default = 1048576
  Cache byte size that triggers garbage collection
  --fst_read_mode: type = std::string, default = "read"
  Default file reading mode for mappable files
  --fst_verify_properties: type = bool, default = false
  Verify FST properties queried by TestProperties
  --save_relabel_ipairs: type = std::string, default = ""
  Save input relabel pairs to file
  --save_relabel_opairs: type = std::string, default = ""
  Save output relabel pairs to file

Flags from: symbol-table.cc
  --fst_compat_symbols: type = bool, default = true
  Require symbol tables to match when appropriate
  --fst_field_separator: type = std::string, default = "         "
  Set of characters used as a separator between printed fields

Flags from: util.cc
  --fst_error_fatal: type = bool, default = true
  FST errors are fatal; o.w. return objects flagged as bad: e.g., FSTs: kError property set, FST weights: not a Member()

Flags from: weight.cc
  --fst_weight_parentheses: type = std::string, default = ""
  Characters enclosing the first weight of a printed composite weight (e.g., pair weight, tuple weight and derived classes) to ensure proper I/O of nested composite weights; must have size 0 (none) or 2 (open and close parenthesis)
  --fst_weight_separator: type = std::string, default = ","
  Character separator between printed composite weights; must be a single character

But when I'm trying to instal pynini with pip install pynini==2.1.4 it gives me the following traceback:

Building wheels for collected packages: pynini
  Building wheel for pynini (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [55 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-3.10
      creating build/lib.linux-x86_64-3.10/pynini
      copying pynini/__init__.py -> build/lib.linux-x86_64-3.10/pynini
      creating build/lib.linux-x86_64-3.10/pywrapfst
      copying pywrapfst/__init__.py -> build/lib.linux-x86_64-3.10/pywrapfst
      creating build/lib.linux-x86_64-3.10/pynini/examples
      copying pynini/examples/plurals.py -> build/lib.linux-x86_64-3.10/pynini/examples
      copying pynini/examples/t9.py -> build/lib.linux-x86_64-3.10/pynini/examples
      copying pynini/examples/__init__.py -> build/lib.linux-x86_64-3.10/pynini/examples
      copying pynini/examples/weather.py -> build/lib.linux-x86_64-3.10/pynini/examples
      copying pynini/examples/dates.py -> build/lib.linux-x86_64-3.10/pynini/examples
      copying pynini/examples/chatspeak_model.py -> build/lib.linux-x86_64-3.10/pynini/examples
      copying pynini/examples/numbers.py -> build/lib.linux-x86_64-3.10/pynini/examples
      copying pynini/examples/case.py -> build/lib.linux-x86_64-3.10/pynini/examples
      copying pynini/examples/chatspeak.py -> build/lib.linux-x86_64-3.10/pynini/examples
      copying pynini/examples/g2p.py -> build/lib.linux-x86_64-3.10/pynini/examples
      creating build/lib.linux-x86_64-3.10/pynini/export
      copying pynini/export/__init__.py -> build/lib.linux-x86_64-3.10/pynini/export
      copying pynini/export/export.py -> build/lib.linux-x86_64-3.10/pynini/export
      copying pynini/export/multi_grm_example.py -> build/lib.linux-x86_64-3.10/pynini/export
      copying pynini/export/multi_grm.py -> build/lib.linux-x86_64-3.10/pynini/export
      copying pynini/export/grm_example.py -> build/lib.linux-x86_64-3.10/pynini/export
      copying pynini/export/grm.py -> build/lib.linux-x86_64-3.10/pynini/export
      creating build/lib.linux-x86_64-3.10/pynini/lib
      copying pynini/lib/__init__.py -> build/lib.linux-x86_64-3.10/pynini/lib
      copying pynini/lib/rewrite.py -> build/lib.linux-x86_64-3.10/pynini/lib
      copying pynini/lib/edit_transducer.py -> build/lib.linux-x86_64-3.10/pynini/lib
      copying pynini/lib/tagger.py -> build/lib.linux-x86_64-3.10/pynini/lib
      copying pynini/lib/byte.py -> build/lib.linux-x86_64-3.10/pynini/lib
      copying pynini/lib/rule_cascade.py -> build/lib.linux-x86_64-3.10/pynini/lib
      copying pynini/lib/paradigms.py -> build/lib.linux-x86_64-3.10/pynini/lib
      copying pynini/lib/features.py -> build/lib.linux-x86_64-3.10/pynini/lib
      copying pynini/lib/pynutil.py -> build/lib.linux-x86_64-3.10/pynini/lib
      copying pynini/lib/utf8.py -> build/lib.linux-x86_64-3.10/pynini/lib
      copying pynini/__init__.pyi -> build/lib.linux-x86_64-3.10/pynini
      copying pynini/py.typed -> build/lib.linux-x86_64-3.10/pynini
      copying pywrapfst/__init__.pyi -> build/lib.linux-x86_64-3.10/pywrapfst
      copying pywrapfst/py.typed -> build/lib.linux-x86_64-3.10/pywrapfst
      copying pynini/examples/py.typed -> build/lib.linux-x86_64-3.10/pynini/examples
      copying pynini/export/py.typed -> build/lib.linux-x86_64-3.10/pynini/export
      copying pynini/lib/py.typed -> build/lib.linux-x86_64-3.10/pynini/lib
      running build_ext
      building '_pywrapfst' extension
      creating build/temp.linux-x86_64-3.10
      creating build/temp.linux-x86_64-3.10/extensions
      x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/dima/Projects/recasepunct/venv/include -I/usr/include/python3.10 -c extensions/_pywrapfst.cpp -o build/temp.linux-x86_64-3.10/extensions/_pywrapfst.o -std=c++17 -Wno-register -Wno-deprecated-declarations -Wno-unused-function -Wno-unused-local-typedefs -funsigned-char
      extensions/_pywrapfst.cpp:810:10: fatal error: fst/types.h: No such file or directory
        810 | #include <fst/types.h>
            |          ^~~~~~~~~~~~~
      compilation terminated.
      error: command '/usr/bin/x86_64-linux-gnu-gcc' 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

My python version is 3.10.4

kylebgorman commented 1 year ago

This one's easy: Pynini 2.1.4 isn't compatible with OpenFst 1.8.2.

Each Pynini release is expected to work with at most one OpenFst release. We're currently on Pynini 2.1.5, which is compatible with OpenFst 1.8.2. (This information is disclosed in the Pynini's NEWS file for each release.)

On Sun, Aug 21, 2022 at 9:47 AM Dmitry Chaplinsky @.***> wrote:

I've built openfst 1.8.2 like this:

./configure --enable-far=true --enable-grm=true --enable-python

sudo make -j40

sudo make install

which is kind of successful:

$ fstinfo --help

Prints out information about an FST.

Usage: fstinfo [in.fst]

PROGRAM FLAGS:

--arc_filter: type = std::string, default = "any"

Arc filter: one of "any", "epsilon", "iepsilon", "oepsilon"; this only affects the counts of (co)accessible states, connected states, and (strongly) connected components

--fst_verify: type = bool, default = true

Verify FST sanity

--info_type: type = std::string, default = "auto"

Info format: one of "auto", "long", "short", "fast".

auto: Equivalent to "long" if the FST is an ExpandedFst, otherwise "short".

long: Print all properties, computing if unknown; this may be slow for large FSTs.

short: Print only type and SymbolTable info.

fast: Print only info that is fast to obtain (by reading only the file header); this is more info than "short", but less than "long".

--test_properties: type = bool, default = true

Compute property values (if unknown to FST)

LIBRARY FLAGS:

Flags from: flags.cc

--help: type = bool, default = false

show usage information

--helpshort: type = bool, default = false

show brief usage information

--tmpdir: type = std::string, default = "/tmp"

temporary directory

--v: type = int32_t, default = 0

verbosity level

Flags from: fst.cc

--fst_align: type = bool, default = false

Write FST data aligned where appropriate

--fst_default_cache_gc: type = bool, default = true

Enable garbage collection of cache

--fst_default_cache_gc_limit: type = int64_t, default = 1048576

Cache byte size that triggers garbage collection

--fst_read_mode: type = std::string, default = "read"

Default file reading mode for mappable files

--fst_verify_properties: type = bool, default = false

Verify FST properties queried by TestProperties

--save_relabel_ipairs: type = std::string, default = ""

Save input relabel pairs to file

--save_relabel_opairs: type = std::string, default = ""

Save output relabel pairs to file

Flags from: symbol-table.cc

--fst_compat_symbols: type = bool, default = true

Require symbol tables to match when appropriate

--fst_field_separator: type = std::string, default = " "

Set of characters used as a separator between printed fields

Flags from: util.cc

--fst_error_fatal: type = bool, default = true

FST errors are fatal; o.w. return objects flagged as bad: e.g., FSTs: kError property set, FST weights: not a Member()

Flags from: weight.cc

--fst_weight_parentheses: type = std::string, default = ""

Characters enclosing the first weight of a printed composite weight (e.g., pair weight, tuple weight and derived classes) to ensure proper I/O of nested composite weights; must have size 0 (none) or 2 (open and close parenthesis)

--fst_weight_separator: type = std::string, default = ","

Character separator between printed composite weights; must be a single character

But when I'm trying to instal pynini with pip install pynini==2.1.4 it gives me the following traceback:

Building wheels for collected packages: pynini

Building wheel for pynini (setup.py) ... error

error: subprocess-exited-with-error

× python setup.py bdist_wheel did not run successfully.

│ exit code: 1

╰─> [55 lines of output]

  running bdist_wheel

  running build

  running build_py

  creating build

  creating build/lib.linux-x86_64-3.10

  creating build/lib.linux-x86_64-3.10/pynini

  copying pynini/__init__.py -> build/lib.linux-x86_64-3.10/pynini

  creating build/lib.linux-x86_64-3.10/pywrapfst

  copying pywrapfst/__init__.py -> build/lib.linux-x86_64-3.10/pywrapfst

  creating build/lib.linux-x86_64-3.10/pynini/examples

  copying pynini/examples/plurals.py -> build/lib.linux-x86_64-3.10/pynini/examples

  copying pynini/examples/t9.py -> build/lib.linux-x86_64-3.10/pynini/examples

  copying pynini/examples/__init__.py -> build/lib.linux-x86_64-3.10/pynini/examples

  copying pynini/examples/weather.py -> build/lib.linux-x86_64-3.10/pynini/examples

  copying pynini/examples/dates.py -> build/lib.linux-x86_64-3.10/pynini/examples

  copying pynini/examples/chatspeak_model.py -> build/lib.linux-x86_64-3.10/pynini/examples

  copying pynini/examples/numbers.py -> build/lib.linux-x86_64-3.10/pynini/examples

  copying pynini/examples/case.py -> build/lib.linux-x86_64-3.10/pynini/examples

  copying pynini/examples/chatspeak.py -> build/lib.linux-x86_64-3.10/pynini/examples

  copying pynini/examples/g2p.py -> build/lib.linux-x86_64-3.10/pynini/examples

  creating build/lib.linux-x86_64-3.10/pynini/export

  copying pynini/export/__init__.py -> build/lib.linux-x86_64-3.10/pynini/export

  copying pynini/export/export.py -> build/lib.linux-x86_64-3.10/pynini/export

  copying pynini/export/multi_grm_example.py -> build/lib.linux-x86_64-3.10/pynini/export

  copying pynini/export/multi_grm.py -> build/lib.linux-x86_64-3.10/pynini/export

  copying pynini/export/grm_example.py -> build/lib.linux-x86_64-3.10/pynini/export

  copying pynini/export/grm.py -> build/lib.linux-x86_64-3.10/pynini/export

  creating build/lib.linux-x86_64-3.10/pynini/lib

  copying pynini/lib/__init__.py -> build/lib.linux-x86_64-3.10/pynini/lib

  copying pynini/lib/rewrite.py -> build/lib.linux-x86_64-3.10/pynini/lib

  copying pynini/lib/edit_transducer.py -> build/lib.linux-x86_64-3.10/pynini/lib

  copying pynini/lib/tagger.py -> build/lib.linux-x86_64-3.10/pynini/lib

  copying pynini/lib/byte.py -> build/lib.linux-x86_64-3.10/pynini/lib

  copying pynini/lib/rule_cascade.py -> build/lib.linux-x86_64-3.10/pynini/lib

  copying pynini/lib/paradigms.py -> build/lib.linux-x86_64-3.10/pynini/lib

  copying pynini/lib/features.py -> build/lib.linux-x86_64-3.10/pynini/lib

  copying pynini/lib/pynutil.py -> build/lib.linux-x86_64-3.10/pynini/lib

  copying pynini/lib/utf8.py -> build/lib.linux-x86_64-3.10/pynini/lib

  copying pynini/__init__.pyi -> build/lib.linux-x86_64-3.10/pynini

  copying pynini/py.typed -> build/lib.linux-x86_64-3.10/pynini

  copying pywrapfst/__init__.pyi -> build/lib.linux-x86_64-3.10/pywrapfst

  copying pywrapfst/py.typed -> build/lib.linux-x86_64-3.10/pywrapfst

  copying pynini/examples/py.typed -> build/lib.linux-x86_64-3.10/pynini/examples

  copying pynini/export/py.typed -> build/lib.linux-x86_64-3.10/pynini/export

  copying pynini/lib/py.typed -> build/lib.linux-x86_64-3.10/pynini/lib

  running build_ext

  building '_pywrapfst' extension

  creating build/temp.linux-x86_64-3.10

  creating build/temp.linux-x86_64-3.10/extensions

  x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/home/dima/Projects/recasepunct/venv/include -I/usr/include/python3.10 -c extensions/_pywrapfst.cpp -o build/temp.linux-x86_64-3.10/extensions/_pywrapfst.o -std=c++17 -Wno-register -Wno-deprecated-declarations -Wno-unused-function -Wno-unused-local-typedefs -funsigned-char

  extensions/_pywrapfst.cpp:810:10: fatal error: fst/types.h: No such file or directory

    810 | #include <fst/types.h>

        |          ^~~~~~~~~~~~~

  compilation terminated.

  error: command '/usr/bin/x86_64-linux-gnu-gcc' 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

My python version is 3.10.4

— Reply to this email directly, view it on GitHub https://github.com/kylebgorman/pynini/issues/57, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABG4OLKUUAZIWQKLYKX3HLV2IXNRANCNFSM57E7PCNQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

dchaplinsky commented 1 year ago

Yes, I've tried to build openfst 1.8.1 for python 3.10. After fixing configure script (which had an issue with 3.6 > 3.10) I had a successful build but wasn't able to built 2.1.4 for nemo. Finally I managed to compile 2.1.15 with 1.8.2 and nightly version of nemo and now I'm a happy camper :)