api won't start #2

Closed
opened 2025-11-11 11:49:21 -06:00 by GiteaMirror · 15 comments
Owner

Originally created by @nerblock on GitHub (Oct 26, 2025).

Trying to start the api but no cake:

user@nuc:~/src/flowsint/flowsint-api$ poetry run uvicorn app.main:app --host 0.0.0.0 --port 5001 --reload
INFO:     Will watch for changes in these directories: ['/home/user/src/flowsint/flowsint-api']
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     Started reloader process [18581] using StatReload
Process SpawnProcess-1:
Traceback (most recent call last):
  File "/usr/lib/python3.11/multiprocessing/process.py", line 314, in _bootstrap
    self.run()
  File "/usr/lib/python3.11/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/home/user/.local/lib/python3.11/site-packages/uvicorn/_subprocess.py", line 80, in subprocess_started
    target(sockets=sockets)
  File "/home/user/.local/lib/python3.11/site-packages/uvicorn/server.py", line 67, in run
    return asyncio_run(self.serve(sockets=sockets), loop_factory=self.config.get_loop_factory())
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.local/lib/python3.11/site-packages/uvicorn/_compat.py", line 30, in asyncio_run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/runners.py", line 120, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/base_events.py", line 650, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/home/user/.local/lib/python3.11/site-packages/uvicorn/server.py", line 71, in serve
    await self._serve(sockets)
  File "/home/user/.local/lib/python3.11/site-packages/uvicorn/server.py", line 78, in _serve
    config.load()
  File "/home/user/.local/lib/python3.11/site-packages/uvicorn/config.py", line 439, in load
    self.loaded_app = import_from_string(self.app)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.local/lib/python3.11/site-packages/uvicorn/importer.py", line 22, in import_from_string
    raise exc from None
  File "/home/user/.local/lib/python3.11/site-packages/uvicorn/importer.py", line 19, in import_from_string
    module = importlib.import_module(module_str)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/user/src/flowsint/flowsint-api/app/main.py", line 2, in <module>
    from flowsint_core.core.graph_db import Neo4jConnection
ModuleNotFoundError: No module named 'flowsint_core'

Originally created by @nerblock on GitHub (Oct 26, 2025). Trying to start the api but no cake: ```bash user@nuc:~/src/flowsint/flowsint-api$ poetry run uvicorn app.main:app --host 0.0.0.0 --port 5001 --reload INFO: Will watch for changes in these directories: ['/home/user/src/flowsint/flowsint-api'] INFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit) INFO: Started reloader process [18581] using StatReload Process SpawnProcess-1: Traceback (most recent call last): File "/usr/lib/python3.11/multiprocessing/process.py", line 314, in _bootstrap self.run() File "/usr/lib/python3.11/multiprocessing/process.py", line 108, in run self._target(*self._args, **self._kwargs) File "/home/user/.local/lib/python3.11/site-packages/uvicorn/_subprocess.py", line 80, in subprocess_started target(sockets=sockets) File "/home/user/.local/lib/python3.11/site-packages/uvicorn/server.py", line 67, in run return asyncio_run(self.serve(sockets=sockets), loop_factory=self.config.get_loop_factory()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/user/.local/lib/python3.11/site-packages/uvicorn/_compat.py", line 30, in asyncio_run return runner.run(main) ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/asyncio/runners.py", line 120, in run return self._loop.run_until_complete(task) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/asyncio/base_events.py", line 650, in run_until_complete return future.result() ^^^^^^^^^^^^^^^ File "/home/user/.local/lib/python3.11/site-packages/uvicorn/server.py", line 71, in serve await self._serve(sockets) File "/home/user/.local/lib/python3.11/site-packages/uvicorn/server.py", line 78, in _serve config.load() File "/home/user/.local/lib/python3.11/site-packages/uvicorn/config.py", line 439, in load self.loaded_app = import_from_string(self.app) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/user/.local/lib/python3.11/site-packages/uvicorn/importer.py", line 22, in import_from_string raise exc from None File "/home/user/.local/lib/python3.11/site-packages/uvicorn/importer.py", line 19, in import_from_string module = importlib.import_module(module_str) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1206, in _gcd_import File "<frozen importlib._bootstrap>", line 1178, in _find_and_load File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 690, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 940, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "/home/user/src/flowsint/flowsint-api/app/main.py", line 2, in <module> from flowsint_core.core.graph_db import Neo4jConnection ModuleNotFoundError: No module named 'flowsint_core' ```
Author
Owner

@dextmorgn commented on GitHub (Oct 26, 2025):

Hey nerblock,

Could you show the output of poetry run python -m pip list | grep flowsint ?

Otherwise, make sure you run poetry install in all py packages :

cd flowsint
poetry install
cd ./flowsint-core && poetry install
cd ./flowsint-transforms && poetry install
cd ./flowsint-api && poetry install && poetry run alembic upgrade head
@dextmorgn commented on GitHub (Oct 26, 2025): Hey nerblock, Could you show the output of `poetry run python -m pip list | grep flowsint` ? Otherwise, make sure you run `poetry install` in all py packages : ```bash cd flowsint poetry install cd ./flowsint-core && poetry install cd ./flowsint-transforms && poetry install cd ./flowsint-api && poetry install && poetry run alembic upgrade head ```
Author
Owner

@nerblock commented on GitHub (Oct 26, 2025):

Could you show the output of poetry run python -m pip list | grep flowsint ?

no output..

Otherwise, make sure you run poetry install in all py packages :

done

poetry run alembic upgrade head

this gives me an error:

user@nuc:~/src/flowsint/flowsint-api$ poetry run alembic upgrade head
Traceback (most recent call last):
  File "/home/user/.local/bin/alembic", line 7, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/user/.local/lib/python3.11/site-packages/alembic/config.py", line 1022, in main
    CommandLine(prog=prog).main(argv=argv)
  File "/home/user/.local/lib/python3.11/site-packages/alembic/config.py", line 1012, in main
    self.run_cmd(cfg, options)
  File "/home/user/.local/lib/python3.11/site-packages/alembic/config.py", line 946, in run_cmd
    fn(
  File "/home/user/.local/lib/python3.11/site-packages/alembic/command.py", line 483, in upgrade
    script.run_env()
  File "/home/user/.local/lib/python3.11/site-packages/alembic/script/base.py", line 545, in run_env
    util.load_python_file(self.dir, "env.py")
  File "/home/user/.local/lib/python3.11/site-packages/alembic/util/pyfiles.py", line 116, in load_python_file
    module = load_module_py(module_id, path)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.local/lib/python3.11/site-packages/alembic/util/pyfiles.py", line 136, in load_module_py
    spec.loader.exec_module(module)  # type: ignore
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/user/src/flowsint/flowsint-api/alembic/env.py", line 16, in <module>
    from flowsint_core.core.models import *  # noqa
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'flowsint_core'
@nerblock commented on GitHub (Oct 26, 2025): > Could you show the output of `poetry run python -m pip list | grep flowsint` ? no output.. > Otherwise, make sure you run `poetry install` in all py packages : done > poetry run alembic upgrade head this gives me an error: ```bash user@nuc:~/src/flowsint/flowsint-api$ poetry run alembic upgrade head Traceback (most recent call last): File "/home/user/.local/bin/alembic", line 7, in <module> sys.exit(main()) ^^^^^^ File "/home/user/.local/lib/python3.11/site-packages/alembic/config.py", line 1022, in main CommandLine(prog=prog).main(argv=argv) File "/home/user/.local/lib/python3.11/site-packages/alembic/config.py", line 1012, in main self.run_cmd(cfg, options) File "/home/user/.local/lib/python3.11/site-packages/alembic/config.py", line 946, in run_cmd fn( File "/home/user/.local/lib/python3.11/site-packages/alembic/command.py", line 483, in upgrade script.run_env() File "/home/user/.local/lib/python3.11/site-packages/alembic/script/base.py", line 545, in run_env util.load_python_file(self.dir, "env.py") File "/home/user/.local/lib/python3.11/site-packages/alembic/util/pyfiles.py", line 116, in load_python_file module = load_module_py(module_id, path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/user/.local/lib/python3.11/site-packages/alembic/util/pyfiles.py", line 136, in load_module_py spec.loader.exec_module(module) # type: ignore ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap_external>", line 940, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "/home/user/src/flowsint/flowsint-api/alembic/env.py", line 16, in <module> from flowsint_core.core.models import * # noqa ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ModuleNotFoundError: No module named 'flowsint_core' ```
Author
Owner

@dextmorgn commented on GitHub (Oct 26, 2025):

if poetry run python -m pip list | grep flowsint returns nothing, I'm suspecting a mismatch in your python environment. Maybe you're using your local python binary instead of the virtual env one.

If you want to debug more, try seeing if those don't reference your /home/user/.local/lib/python3.11 instead of the .venv. Try running :

poetry env info

#> Virtualenv
#> Python:         3.12.9
#> Implementation: CPython
#> Path:           /home/user/src/flowsint/.venv
#> Executable:     /home/user/src/flowsint/.venv/bin/python  #> correct, should reference python in the .venv

And the one returned by poetry run which python should be the same.

If you don't feel like debugging, try removing the .venv folder with rm -rf .venv and relauch the install with make dev command.

Let me know !

@dextmorgn commented on GitHub (Oct 26, 2025): if `poetry run python -m pip list | grep flowsint` returns nothing, I'm suspecting a mismatch in your python environment. Maybe you're using your local python binary instead of the virtual env one. If you want to debug more, try seeing if those don't reference your `/home/user/.local/lib/python3.11` instead of the `.venv`. Try running : ```bash poetry env info #> Virtualenv #> Python: 3.12.9 #> Implementation: CPython #> Path: /home/user/src/flowsint/.venv #> Executable: /home/user/src/flowsint/.venv/bin/python #> correct, should reference python in the .venv ``` And the one returned by `poetry run which python` should be the same. If you don't feel like debugging, try removing the `.venv` folder with `rm -rf .venv` and relauch the install with `make dev` command. Let me know !
Author
Owner

@nerblock commented on GitHub (Oct 26, 2025):

This is what I get:

user@nuc:~/src/flowsint$ poetry env info

Virtualenv
Python:         3.11.0
Implementation: CPython
Path:           /home/user/src/flowsint/.venv
Executable:     /home/user/src/flowsint/.venv/bin/python
Valid:          True

Base
Platform:   linux
OS:         posix
Python:     3.11.0
Path:       /usr
Executable: /usr/bin/python3.11
user@nuc:~/src/flowsint$ poetry run which python
/home/user/src/flowsint/.venv/bin/python

Will try to remove .venv and report back.

@nerblock commented on GitHub (Oct 26, 2025): This is what I get: ```bash user@nuc:~/src/flowsint$ poetry env info Virtualenv Python: 3.11.0 Implementation: CPython Path: /home/user/src/flowsint/.venv Executable: /home/user/src/flowsint/.venv/bin/python Valid: True Base Platform: linux OS: posix Python: 3.11.0 Path: /usr Executable: /usr/bin/python3.11 ``` ```bash user@nuc:~/src/flowsint$ poetry run which python /home/user/src/flowsint/.venv/bin/python ``` Will try to remove .venv and report back.
Author
Owner

@nerblock commented on GitHub (Oct 26, 2025):

Ok so I removed .venv and I get this error now which is weird because it ran successfully with python 3.11 before:

user@nuc:~/src/flowsint$ make dev
make check-env
make[1]: Entering directory '/home/user/src/flowsint'
🔎 Checking .env files...
✅ Using existing .env in .
✅ Using existing .env in flowsint-api
✅ Using existing .env in flowsint-core
✅ Using existing .env in flowsint-app
make[1]: Leaving directory '/home/user/src/flowsint'
make install
make[1]: Entering directory '/home/user/src/flowsint'
🚀 Installing Flowsint project modules...
poetry config virtualenvs.in-project true --local
poetry env use python3.12

Could not find the python executable python3.12
make[1]: *** [Makefile:35: install] Error 1
make[1]: Leaving directory '/home/user/src/flowsint'
make: *** [Makefile:9: dev] Error 2
@nerblock commented on GitHub (Oct 26, 2025): Ok so I removed .venv and I get this error now which is weird because it ran successfully with python 3.11 before: ```bash user@nuc:~/src/flowsint$ make dev make check-env make[1]: Entering directory '/home/user/src/flowsint' 🔎 Checking .env files... ✅ Using existing .env in . ✅ Using existing .env in flowsint-api ✅ Using existing .env in flowsint-core ✅ Using existing .env in flowsint-app make[1]: Leaving directory '/home/user/src/flowsint' make install make[1]: Entering directory '/home/user/src/flowsint' 🚀 Installing Flowsint project modules... poetry config virtualenvs.in-project true --local poetry env use python3.12 Could not find the python executable python3.12 make[1]: *** [Makefile:35: install] Error 1 make[1]: Leaving directory '/home/user/src/flowsint' make: *** [Makefile:9: dev] Error 2 ```
Author
Owner

@dextmorgn commented on GitHub (Oct 26, 2025):

Great, can you comment line #41 in the Makefile and run rm -rf .venv && make dev again ?
Basically remove the poetry env use python3.12 from the install.

This was forcing the usage of a particular python version but cannot work if not installed on the host machine.

Let me know if this works, so that I can update the Makefile to make it less restrictive.

@dextmorgn commented on GitHub (Oct 26, 2025): Great, can you comment line #41 in the `Makefile` and run `rm -rf .venv && make dev` again ? Basically remove the `poetry env use python3.12` from the install. This was forcing the usage of a particular python version but cannot work if not installed on the host machine. Let me know if this works, so that I can update the Makefile to make it less restrictive.
Author
Owner

@nerblock commented on GitHub (Oct 26, 2025):

Ok, there is some progress... I removed the 3.12 line and ran apt install build-essential cmake pkg-config because of build errors, and now its missing cairo:

user@nuc:~/src/flowsint$ make dev
make check-env
make[1]: Entering directory '/home/user/src/flowsint'
🔎 Checking .env files...
✅ Using existing .env in .
✅ Using existing .env in flowsint-api
✅ Using existing .env in flowsint-core
✅ Using existing .env in flowsint-app
make[1]: Leaving directory '/home/user/src/flowsint'
make install
make[1]: Entering directory '/home/user/src/flowsint'
🚀 Installing Flowsint project modules...
poetry config virtualenvs.in-project true --local
#poetry env use python3.12
docker compose up -d postgres redis neo4j
[+] Running 3/3
 ✔ Container flowsint-postgres  Running                                                                                                                                                                                                0.0s
 ✔ Container redis-cache        Running                                                                                                                                                                                                0.0s
 ✔ Container flowsint-neo4j     Running                                                                                                                                                                                                0.0s
poetry install
Creating virtualenv flowsint in /home/user/src/flowsint/.venv
Installing dependencies from lock file

Package operations: 198 installs, 0 updates, 0 removals

  - Installing pycparser (2.23)
  - Installing asn1crypto (1.5.1)
  - Installing certifi (2025.10.5)
  - Installing cffi (2.0.0)
  - Installing charset-normalizer (3.4.4)
  - Installing idna (3.11)
  - Installing mdurl (0.1.2)
  - Installing typing-extensions (4.15.0)
  - Installing urllib3 (2.5.0)
  - Installing webencodings (0.5.1)
  - Installing annotated-types (0.7.0)
  - Installing asttokens (3.0.0)
  - Installing catalogue (2.0.10)
  - Installing cryptography (45.0.7)
  - Installing executing (2.2.1)
  - Installing freetype-py (2.5.1)
  - Installing frozenlist (1.8.0)
  - Installing markdown-it-py (4.0.0)
  - Installing multidict (6.7.0)
  - Installing oscrypto (1.3.0)
  - Installing parso (0.8.5)
  - Installing pillow (12.0.0)
  - Installing propcache (0.4.1)
  - Installing ptyprocess (0.7.0)
  - Installing pure-eval (0.2.3)
  - Installing pycairo (1.28.0): Failed

PEP517 build of a dependency failed

Backend subprocess exited when trying to invoke build_wheel

    | Command '['/tmp/tmphu6w8uwg/.venv/bin/python', '/home/user/.local/share/pypoetry/venv/lib/python3.11/site-packages/pyproject_hooks/_in_process/_in_process.py', 'build_wheel', '/tmp/tmptxkf4lsa']' returned non-zero exit status 1.
    |
    | + meson setup /tmp/tmpa3xeff5g/pycairo-1.28.0 /tmp/tmpa3xeff5g/pycairo-1.28.0/.mesonpy-tlu2qq6m -Dbuildtype=release -Db_ndebug=if-release -Db_vscrt=md -Dwheel=true -Dtests=false --native-file=/tmp/tmpa3xeff5g/pycairo-1.28.0/.mesonpy-tlu2qq6m/meson-python-native-file.ini
    | The Meson build system
    | Version: 1.9.1
    | Source dir: /tmp/tmpa3xeff5g/pycairo-1.28.0
    | Build dir: /tmp/tmpa3xeff5g/pycairo-1.28.0/.mesonpy-tlu2qq6m
    | Build type: native build
    | Project name: pycairo
    | Project version: 1.28.0
    | C compiler for the host machine: cc (gcc 11.4.0 "cc (Ubuntu 11.4.0-1ubuntu1~22.04.2) 11.4.0")
    | C linker for the host machine: cc ld.bfd 2.38
    | Host machine cpu family: x86_64
    | Host machine cpu: x86_64
    | Program python3 found: YES (/tmp/tmphu6w8uwg/.venv/bin/python)
    | Compiler for C supports arguments -Wall: YES
    | Compiler for C supports arguments -Warray-bounds: YES
    | Compiler for C supports arguments -Wcast-align: YES
    | Compiler for C supports arguments -Wconversion: YES
    | Compiler for C supports arguments -Wextra: YES
    | Compiler for C supports arguments -Wformat=2: YES
    | Compiler for C supports arguments -Wformat-nonliteral: YES
    | Compiler for C supports arguments -Wformat-security: YES
    | Compiler for C supports arguments -Wimplicit-function-declaration: YES
    | Compiler for C supports arguments -Winit-self: YES
    | Compiler for C supports arguments -Winline: YES
    | Compiler for C supports arguments -Wmissing-format-attribute: YES
    | Compiler for C supports arguments -Wmissing-noreturn: YES
    | Compiler for C supports arguments -Wnested-externs: YES
    | Compiler for C supports arguments -Wold-style-definition: YES
    | Compiler for C supports arguments -Wpacked: YES
    | Compiler for C supports arguments -Wpointer-arith: YES
    | Compiler for C supports arguments -Wreturn-type: YES
    | Compiler for C supports arguments -Wshadow: YES
    | Compiler for C supports arguments -Wsign-compare: YES
    | Compiler for C supports arguments -Wstrict-aliasing: YES
    | Compiler for C supports arguments -Wundef: YES
    | Compiler for C supports arguments -Wunused-but-set-variable: YES
    | Compiler for C supports arguments -Wswitch-default: YES
    | Compiler for C supports arguments -Wno-missing-field-initializers: YES
    | Compiler for C supports arguments -Wno-unused-parameter: YES
    | Compiler for C supports arguments -fno-strict-aliasing: YES
    | Compiler for C supports arguments -fvisibility=hidden: YES
    | Found pkg-config: YES (/usr/bin/pkg-config) 0.29.2
    | Found CMake: /usr/bin/cmake (3.22.1)
    | Run-time dependency cairo found: NO (tried pkgconfig and cmake)
    |
    | ../cairo/meson.build:31:12: ERROR: Dependency "cairo" not found, tried pkgconfig and cmake
    |
    | A full log can be found at /tmp/tmpa3xeff5g/pycairo-1.28.0/.mesonpy-tlu2qq6m/meson-logs/meson-log.txt

Note: This error originates from the build backend, and is likely not a problem with poetry but one of the following issues with pycairo (1.28.0)

  - not supporting PEP 517 builds
  - not specifying PEP 517 build requirements correctly
  - the build requirements are incompatible with your operating system or Python version
  - the build requirements are missing system dependencies (eg: compilers, libraries, headers).

You can verify this by running pip wheel --no-cache-dir --use-pep517 "pycairo (==1.28.0)".

  - Installing pygments (2.19.2)
  - Installing pydantic-core (2.41.4)
  - Installing requests (2.32.5)
  - Installing tinycss2 (1.4.0)
  - Installing traitlets (5.14.3)
  - Installing typing-inspection (0.4.2)
  - Installing uritools (5.0.0)
  - Installing wcwidth (0.2.14)
make[1]: *** [Makefile:37: install] Error 1
make[1]: Leaving directory '/home/user/src/flowsint'
make: *** [Makefile:9: dev] Error 2
@nerblock commented on GitHub (Oct 26, 2025): Ok, there is some progress... I removed the 3.12 line and ran `apt install build-essential cmake pkg-config` because of build errors, and now its missing cairo: ```bash user@nuc:~/src/flowsint$ make dev make check-env make[1]: Entering directory '/home/user/src/flowsint' 🔎 Checking .env files... ✅ Using existing .env in . ✅ Using existing .env in flowsint-api ✅ Using existing .env in flowsint-core ✅ Using existing .env in flowsint-app make[1]: Leaving directory '/home/user/src/flowsint' make install make[1]: Entering directory '/home/user/src/flowsint' 🚀 Installing Flowsint project modules... poetry config virtualenvs.in-project true --local #poetry env use python3.12 docker compose up -d postgres redis neo4j [+] Running 3/3 ✔ Container flowsint-postgres Running 0.0s ✔ Container redis-cache Running 0.0s ✔ Container flowsint-neo4j Running 0.0s poetry install Creating virtualenv flowsint in /home/user/src/flowsint/.venv Installing dependencies from lock file Package operations: 198 installs, 0 updates, 0 removals - Installing pycparser (2.23) - Installing asn1crypto (1.5.1) - Installing certifi (2025.10.5) - Installing cffi (2.0.0) - Installing charset-normalizer (3.4.4) - Installing idna (3.11) - Installing mdurl (0.1.2) - Installing typing-extensions (4.15.0) - Installing urllib3 (2.5.0) - Installing webencodings (0.5.1) - Installing annotated-types (0.7.0) - Installing asttokens (3.0.0) - Installing catalogue (2.0.10) - Installing cryptography (45.0.7) - Installing executing (2.2.1) - Installing freetype-py (2.5.1) - Installing frozenlist (1.8.0) - Installing markdown-it-py (4.0.0) - Installing multidict (6.7.0) - Installing oscrypto (1.3.0) - Installing parso (0.8.5) - Installing pillow (12.0.0) - Installing propcache (0.4.1) - Installing ptyprocess (0.7.0) - Installing pure-eval (0.2.3) - Installing pycairo (1.28.0): Failed PEP517 build of a dependency failed Backend subprocess exited when trying to invoke build_wheel | Command '['/tmp/tmphu6w8uwg/.venv/bin/python', '/home/user/.local/share/pypoetry/venv/lib/python3.11/site-packages/pyproject_hooks/_in_process/_in_process.py', 'build_wheel', '/tmp/tmptxkf4lsa']' returned non-zero exit status 1. | | + meson setup /tmp/tmpa3xeff5g/pycairo-1.28.0 /tmp/tmpa3xeff5g/pycairo-1.28.0/.mesonpy-tlu2qq6m -Dbuildtype=release -Db_ndebug=if-release -Db_vscrt=md -Dwheel=true -Dtests=false --native-file=/tmp/tmpa3xeff5g/pycairo-1.28.0/.mesonpy-tlu2qq6m/meson-python-native-file.ini | The Meson build system | Version: 1.9.1 | Source dir: /tmp/tmpa3xeff5g/pycairo-1.28.0 | Build dir: /tmp/tmpa3xeff5g/pycairo-1.28.0/.mesonpy-tlu2qq6m | Build type: native build | Project name: pycairo | Project version: 1.28.0 | C compiler for the host machine: cc (gcc 11.4.0 "cc (Ubuntu 11.4.0-1ubuntu1~22.04.2) 11.4.0") | C linker for the host machine: cc ld.bfd 2.38 | Host machine cpu family: x86_64 | Host machine cpu: x86_64 | Program python3 found: YES (/tmp/tmphu6w8uwg/.venv/bin/python) | Compiler for C supports arguments -Wall: YES | Compiler for C supports arguments -Warray-bounds: YES | Compiler for C supports arguments -Wcast-align: YES | Compiler for C supports arguments -Wconversion: YES | Compiler for C supports arguments -Wextra: YES | Compiler for C supports arguments -Wformat=2: YES | Compiler for C supports arguments -Wformat-nonliteral: YES | Compiler for C supports arguments -Wformat-security: YES | Compiler for C supports arguments -Wimplicit-function-declaration: YES | Compiler for C supports arguments -Winit-self: YES | Compiler for C supports arguments -Winline: YES | Compiler for C supports arguments -Wmissing-format-attribute: YES | Compiler for C supports arguments -Wmissing-noreturn: YES | Compiler for C supports arguments -Wnested-externs: YES | Compiler for C supports arguments -Wold-style-definition: YES | Compiler for C supports arguments -Wpacked: YES | Compiler for C supports arguments -Wpointer-arith: YES | Compiler for C supports arguments -Wreturn-type: YES | Compiler for C supports arguments -Wshadow: YES | Compiler for C supports arguments -Wsign-compare: YES | Compiler for C supports arguments -Wstrict-aliasing: YES | Compiler for C supports arguments -Wundef: YES | Compiler for C supports arguments -Wunused-but-set-variable: YES | Compiler for C supports arguments -Wswitch-default: YES | Compiler for C supports arguments -Wno-missing-field-initializers: YES | Compiler for C supports arguments -Wno-unused-parameter: YES | Compiler for C supports arguments -fno-strict-aliasing: YES | Compiler for C supports arguments -fvisibility=hidden: YES | Found pkg-config: YES (/usr/bin/pkg-config) 0.29.2 | Found CMake: /usr/bin/cmake (3.22.1) | Run-time dependency cairo found: NO (tried pkgconfig and cmake) | | ../cairo/meson.build:31:12: ERROR: Dependency "cairo" not found, tried pkgconfig and cmake | | A full log can be found at /tmp/tmpa3xeff5g/pycairo-1.28.0/.mesonpy-tlu2qq6m/meson-logs/meson-log.txt Note: This error originates from the build backend, and is likely not a problem with poetry but one of the following issues with pycairo (1.28.0) - not supporting PEP 517 builds - not specifying PEP 517 build requirements correctly - the build requirements are incompatible with your operating system or Python version - the build requirements are missing system dependencies (eg: compilers, libraries, headers). You can verify this by running pip wheel --no-cache-dir --use-pep517 "pycairo (==1.28.0)". - Installing pygments (2.19.2) - Installing pydantic-core (2.41.4) - Installing requests (2.32.5) - Installing tinycss2 (1.4.0) - Installing traitlets (5.14.3) - Installing typing-inspection (0.4.2) - Installing uritools (5.0.0) - Installing wcwidth (0.2.14) make[1]: *** [Makefile:37: install] Error 1 make[1]: Leaving directory '/home/user/src/flowsint' make: *** [Makefile:9: dev] Error 2 ```
Author
Owner

@nerblock commented on GitHub (Oct 26, 2025):

So it needed apt install libcairo2-dev to continue. And now it fails with:

../cairo/meson.build:51:15: ERROR: Python dependency not found
@nerblock commented on GitHub (Oct 26, 2025): So it needed `apt install libcairo2-dev` to continue. And now it fails with: ```bash ../cairo/meson.build:51:15: ERROR: Python dependency not found ```
Author
Owner

@dextmorgn commented on GitHub (Oct 26, 2025):

Mhhh. I will be working on a fully dockerized env in the next few days to avoid this kind of problem.

@dextmorgn commented on GitHub (Oct 26, 2025): Mhhh. I will be working on a fully dockerized env in the next few days to avoid this kind of problem.
Author
Owner

@nerblock commented on GitHub (Oct 26, 2025):

It needed apt install python3.11-dev. 🤦‍♂️

@nerblock commented on GitHub (Oct 26, 2025): It needed `apt install python3.11-dev`. 🤦‍♂️
Author
Owner

@nerblock commented on GitHub (Oct 26, 2025):

So it built everything successfully, but now I get this error... 😅

user@nuc:~/src/flowsint/flowsint-api$ poetry run uvicorn app.main:app --host 0.0.0.0 --port 5001 --reload
INFO:     Will watch for changes in these directories: ['/home/user/src/flowsint/flowsint-api']
INFO:     Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit)
INFO:     Started reloader process [27526] using StatReload
Process SpawnProcess-1:
Traceback (most recent call last):
  File "/usr/lib/python3.11/multiprocessing/process.py", line 314, in _bootstrap
    self.run()
  File "/usr/lib/python3.11/multiprocessing/process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "/home/user/.cache/pypoetry/virtualenvs/flowsint-api-Snje2lh6-py3.11/lib/python3.11/site-packages/uvicorn/_subprocess.py", line 80, in subprocess_started
    target(sockets=sockets)
  File "/home/user/.cache/pypoetry/virtualenvs/flowsint-api-Snje2lh6-py3.11/lib/python3.11/site-packages/uvicorn/server.py", line 65, in run
    return asyncio.run(self.serve(sockets=sockets))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/runners.py", line 188, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/runners.py", line 120, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/base_events.py", line 650, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/home/user/.cache/pypoetry/virtualenvs/flowsint-api-Snje2lh6-py3.11/lib/python3.11/site-packages/uvicorn/server.py", line 69, in serve
    await self._serve(sockets)
  File "/home/user/.cache/pypoetry/virtualenvs/flowsint-api-Snje2lh6-py3.11/lib/python3.11/site-packages/uvicorn/server.py", line 76, in _serve
    config.load()
  File "/home/user/.cache/pypoetry/virtualenvs/flowsint-api-Snje2lh6-py3.11/lib/python3.11/site-packages/uvicorn/config.py", line 434, in load
    self.loaded_app = import_from_string(self.app)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/.cache/pypoetry/virtualenvs/flowsint-api-Snje2lh6-py3.11/lib/python3.11/site-packages/uvicorn/importer.py", line 19, in import_from_string
    module = importlib.import_module(module_str)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/home/user/src/flowsint/flowsint-api/app/main.py", line 11, in <module>
    from app.api.routes import transforms
  File "/home/user/src/flowsint/flowsint-api/app/api/routes/transforms.py", line 4, in <module>
    from flowsint_core.core.registry import TransformRegistry
  File "/home/user/src/flowsint/flowsint-core/src/flowsint_core/core/registry.py", line 12, in <module>
    from flowsint_transforms.domain.to_history import DomainToHistoryTransform
  File "/home/user/src/flowsint/flowsint-transforms/src/flowsint_transforms/domain/to_history.py", line 12, in <module>
    from tools.network.whoxy import WhoxyTool
  File "/home/user/src/flowsint/flowsint-transforms/src/tools/network/whoxy.py", line 36
    f"Error querying Whoxy API: {str(data.get("status_reason") )}"
                                               ^^^^^^^^^^^^^
SyntaxError: f-string: unmatched '('
@nerblock commented on GitHub (Oct 26, 2025): So it built everything successfully, but now I get this error... 😅 ```bash user@nuc:~/src/flowsint/flowsint-api$ poetry run uvicorn app.main:app --host 0.0.0.0 --port 5001 --reload INFO: Will watch for changes in these directories: ['/home/user/src/flowsint/flowsint-api'] INFO: Uvicorn running on http://0.0.0.0:5001 (Press CTRL+C to quit) INFO: Started reloader process [27526] using StatReload Process SpawnProcess-1: Traceback (most recent call last): File "/usr/lib/python3.11/multiprocessing/process.py", line 314, in _bootstrap self.run() File "/usr/lib/python3.11/multiprocessing/process.py", line 108, in run self._target(*self._args, **self._kwargs) File "/home/user/.cache/pypoetry/virtualenvs/flowsint-api-Snje2lh6-py3.11/lib/python3.11/site-packages/uvicorn/_subprocess.py", line 80, in subprocess_started target(sockets=sockets) File "/home/user/.cache/pypoetry/virtualenvs/flowsint-api-Snje2lh6-py3.11/lib/python3.11/site-packages/uvicorn/server.py", line 65, in run return asyncio.run(self.serve(sockets=sockets)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/asyncio/runners.py", line 188, in run return runner.run(main) ^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/asyncio/runners.py", line 120, in run return self._loop.run_until_complete(task) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/asyncio/base_events.py", line 650, in run_until_complete return future.result() ^^^^^^^^^^^^^^^ File "/home/user/.cache/pypoetry/virtualenvs/flowsint-api-Snje2lh6-py3.11/lib/python3.11/site-packages/uvicorn/server.py", line 69, in serve await self._serve(sockets) File "/home/user/.cache/pypoetry/virtualenvs/flowsint-api-Snje2lh6-py3.11/lib/python3.11/site-packages/uvicorn/server.py", line 76, in _serve config.load() File "/home/user/.cache/pypoetry/virtualenvs/flowsint-api-Snje2lh6-py3.11/lib/python3.11/site-packages/uvicorn/config.py", line 434, in load self.loaded_app = import_from_string(self.app) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/user/.cache/pypoetry/virtualenvs/flowsint-api-Snje2lh6-py3.11/lib/python3.11/site-packages/uvicorn/importer.py", line 19, in import_from_string module = importlib.import_module(module_str) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1206, in _gcd_import File "<frozen importlib._bootstrap>", line 1178, in _find_and_load File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 690, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 940, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "/home/user/src/flowsint/flowsint-api/app/main.py", line 11, in <module> from app.api.routes import transforms File "/home/user/src/flowsint/flowsint-api/app/api/routes/transforms.py", line 4, in <module> from flowsint_core.core.registry import TransformRegistry File "/home/user/src/flowsint/flowsint-core/src/flowsint_core/core/registry.py", line 12, in <module> from flowsint_transforms.domain.to_history import DomainToHistoryTransform File "/home/user/src/flowsint/flowsint-transforms/src/flowsint_transforms/domain/to_history.py", line 12, in <module> from tools.network.whoxy import WhoxyTool File "/home/user/src/flowsint/flowsint-transforms/src/tools/network/whoxy.py", line 36 f"Error querying Whoxy API: {str(data.get("status_reason") )}" ^^^^^^^^^^^^^ SyntaxError: f-string: unmatched '(' ```
Author
Owner

@nerblock commented on GitHub (Oct 27, 2025):

Ok, so I removed the double quotes inside the double quotes from /whoxy.py, then this error came up when registering:

(trapped) error reading bcrypt version
Traceback (most recent call last):
  File "/home/user/.cache/pypoetry/virtualenvs/flowsint-api-Snje2lh6-py3.11/lib/python3.11/site-packages/passlib/handlers/bcrypt.py", line 620, in _load_backend_mixin
    version = _bcrypt.__about__.__version__
              ^^^^^^^^^^^^^^^^^
AttributeError: module 'bcrypt' has no attribute '__about__'

I followed this post and replaced the get_password_hash and verify_password functions with the bcrypt only implementation. Now registration works but I cant login:

INFO:     127.0.0.1:60910 - "POST /api/auth/register HTTP/1.1" 201 Created
INFO:     127.0.0.1:39340 - "POST /api/auth/token HTTP/1.1" 400 Bad Request
@nerblock commented on GitHub (Oct 27, 2025): Ok, so I removed the double quotes inside the double quotes from /whoxy.py, then this error came up when registering: ```bash (trapped) error reading bcrypt version Traceback (most recent call last): File "/home/user/.cache/pypoetry/virtualenvs/flowsint-api-Snje2lh6-py3.11/lib/python3.11/site-packages/passlib/handlers/bcrypt.py", line 620, in _load_backend_mixin version = _bcrypt.__about__.__version__ ^^^^^^^^^^^^^^^^^ AttributeError: module 'bcrypt' has no attribute '__about__' ``` I followed [this post](https://github.com/pyca/bcrypt/issues/684#issuecomment-1902590553) and replaced the get_password_hash and verify_password functions with the bcrypt only implementation. Now registration works but I cant login: ```bash INFO: 127.0.0.1:60910 - "POST /api/auth/register HTTP/1.1" 201 Created INFO: 127.0.0.1:39340 - "POST /api/auth/token HTTP/1.1" 400 Bad Request ```
Author
Owner

@dextmorgn commented on GitHub (Oct 27, 2025):

I think the best solution for you would be tu upgrade your python version to python3.12 + and re-start the install

@dextmorgn commented on GitHub (Oct 27, 2025): I think the best solution for you would be tu upgrade your python version to python3.12 + and re-start the install
Author
Owner

@dextmorgn commented on GitHub (Oct 27, 2025):

@nerblock, I updated the deploy so that now everything works in docker environment. Rebase your branch and run make dev to dev or make prod for production and you should be fine ! Let me know if this works so I can close the issue.

@dextmorgn commented on GitHub (Oct 27, 2025): @nerblock, I updated the deploy so that now everything works in docker environment. Rebase your branch and run `make dev` to dev or `make prod` for production and you should be fine ! Let me know if this works so I can close the issue.
Author
Owner

@nerblock commented on GitHub (Oct 28, 2025):

I can confirm make prod works as expected. Thank you for the assistance, closing this!

@nerblock commented on GitHub (Oct 28, 2025): I can confirm `make prod` works as expected. Thank you for the assistance, closing this!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/flowsint#2