Skip to content

Can't install floret 0.10.5 on Python 3.13 #31

@dwvisser

Description

@dwvisser

I get the following error when the C++ is being built by pip:

      c++ -pthread -fno-strict-overflow -Wsign-compare -Wunreachable-code -DNDEBUG -g -O3 -Wall -fPIC -fPIC -I/tmp/pip-build-env-wp2xuhpq/overlay/lib/python3.13/site-packages/pybind11/include -I/tmp/pip-build-env-wp2xuhpq/overlay/lib/python3.13/site-packages/pybind11/include -Isrc -I/tmp/venv2/include -I/home/dvisser/.local/share/uv/python/cpython-3.13.5-linux-x86_64-gnu/include/python3.13 -c src/args.cc -o build/temp.linux-x86_64-cpython-313/src/args.o -DVERSION_INFO=\"0.10.5\" -std=c++11 -fvisibility=hidden
      src/args.cc: In member function ‘void fasttext::Args::parseArgs(const std::vector<std::__cxx11::basic_string<char> >&)’:
      src/args.cc:132:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<std::__cxx11::basic_string<char> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
        132 |   for (int ai = 2; ai < args.size(); ai += 2) {
            |                    ~~~^~~~~~~~~~~~~
      src/args.cc:250:19: warning: catching polymorphic type ‘class std::out_of_range’ by value [-Wcatch-value=]
        250 |     } catch (std::out_of_range) {
            |                   ^~~~~~~~~~~~
      src/args.cc: In member function ‘int64_t fasttext::Args::getAutotuneModelSize() const’:
      src/args.cc:512:3: error: ‘uint64_t’ was not declared in this scope
        512 |   uint64_t multiplier = 1;
            |   ^~~~~~~~
      src/args.cc:17:1: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
         16 | #include <unordered_map>
        +++ |+#include <cstdint>
         17 |
      src/args.cc:515:5: error: ‘multiplier’ was not declared in this scope
        515 |     multiplier = units[lastCharacter];
            |     ^~~~~~~~~~
      src/args.cc:518:11: error: expected ‘;’ before ‘size’
        518 |   uint64_t size = 0;
            |           ^~~~~
            |           ;
      src/args.cc:522:5: error: ‘size’ was not declared in this scope
        522 |     size = std::stol(modelSize, &nonNumericCharacter);
            |     ^~~~
      src/args.cc:534:10: error: ‘size’ was not declared in this scope
        534 |   return size * multiplier;
            |          ^~~~
      src/args.cc:534:17: error: ‘multiplier’ was not declared in this scope
        534 |   return size * multiplier;
            |                 ^~~~~~~~~~
      error: command '/usr/bin/c++' 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 floret
Failed to build floret
ERROR: Failed to build installable wheels for some pyproject.toml based projects (floret)

The #include <cstdint> suggestion seems legitimate. I don't see how args.cc would compile without it.

Also, I see in the following line in CMakeLists.txt, which references a folder that isn't even in the source tarball:

include_directories(fasttext)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions