nexus-stc / stc

Distributed free search engine and AI tools that grant access to knowledge

Home Page:http://standard-template-construct.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

installation problem with "summa-embed"

flowerpower13 opened this issue · comments

During the installation process, the build for the "summa-embed" package fails with a Rust compilation error. This error appears to be related to the Rust code compilation process, specifically during the build of the "summa-core" component. The error message suggests a problem with the native library build through cargo, leading to a non-zero exit status.

Error Details:
Compiling summa-core v0.17.18 (/tmp/pip-install-8yw6q_9t/summa-embed_7e4bfb0350794254be97a96cde62bd59/local_dependencies/summa-core)
error: could not compile summa-core (lib) due to 2 previous errors
warning: build failed, waiting for other jobs to finish...
💥 maturin failed
Caused by: Failed to build a native library through cargo
Caused by: Cargo build finished with "exit status: 101": PYO3_ENVIRONMENT_SIGNATURE="cpython-3.9-64bit" PYO3_PYTHON="/usr/bin/python3.9" PYTHON_SYS_EXECUTABLE="/usr/bin/python3.9" "cargo" "rustc" "--release" "--features" "pyo3/extension-module" "--manifest-path" "/tmp/pip-install-8yw6q_9t/summa-embed_7e4bfb0350794254be97a96cde62bd59/Cargo.toml" "--message-format" "json" "--lib"
warning: associated type documentsStream should have an upper camel case name
--> /tmp/pip-install-8yw6q_9t/summa-embed_7e4bfb0350794254be97a96cde62bd59/target/release/build/summa-proto-cf39bd6a57042ac9/out/summa.proto.rs:2949:14
|
2949 | type documentsStream: futures_core::Stream<
| ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: DocumentsStream
|
= note: #[warn(non_camel_case_types)] on by default

  warning: 1 warning emitted


  error: couldn't read local_dependencies/summa-core/src/lib.rs: No such file or directory (os error 2)


  error: aborting due to previous error


  Error: command ['maturin', 'pep517', 'build-wheel', '-i', '/usr/bin/python3.9', '--compatibility', 'off'] returned non-zero exit status 1 
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for summa-embed
Failed to build summa-embed
ERROR: Could not build wheels for summa-embed, which is required to install pyproject.toml-based projects

Environment:
Python version: 3.9
Docker container: hopeful_bohr
Operating System: Windows 11

Steps to Reproduce:
Clone the "cybrex" package repository.
Follow the installation instructions using Python 3.9 within a Docker container.
Observe the compilation failure during the build of the "summa-embed" package.

Expected Outcome:
Successful compilation and installation of the "summa-embed" package, allowing seamless usage of the "cybrex" package.

I have the same problem on my Windows machine and can install it on a Linux machine.

Could you try it with latest versions of summa-embed? They have published pre-built versions for Windows. Beforehand you might need to update your pip up to the latest verions

I can install the latest version of stc-geck on my Windows machine, v1.6.6, but still failed to query data from CLI.

(stc-geck) PS E:\> geck --ipfs-http-base-url 127.0.0.1:8080 - search doi:10.3384/ecp1392a41
INFO: Setting up indices...
thread 'tokio-runtime-worker' panicked at 'External("status: 301 Moved Permanently for http://127.0.0.1:8080/ipns/standard-template-construct.org/data//meta.json")', D:\a\summa\summa\summa-core\src\directories\network_directory.rs:78:23
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "E:\conda\miniconda3\envs\stc-geck\Scripts\geck.exe\__main__.py", line 7, in <module>
  File "E:\conda\miniconda3\envs\stc-geck\Lib\site-packages\stc_geck\cli.py", line 203, in main
    fire.Fire(stc_geck_cli, name='geck')
  File "E:\conda\miniconda3\envs\stc-geck\Lib\site-packages\fire\core.py", line 141, in Fire
    component_trace = _Fire(component, args, parsed_flag_args, context, name)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\conda\miniconda3\envs\stc-geck\Lib\site-packages\fire\core.py", line 475, in _Fire
    component, remaining_args = _CallAndUpdateTrace(
                                ^^^^^^^^^^^^^^^^^^^^
  File "E:\conda\miniconda3\envs\stc-geck\Lib\site-packages\fire\core.py", line 689, in _CallAndUpdateTrace
    component = loop.run_until_complete(fn(*varargs, **kwargs))
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\conda\miniconda3\envs\stc-geck\Lib\asyncio\base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "E:\conda\miniconda3\envs\stc-geck\Lib\site-packages\stc_geck\cli.py", line 125, in search
    async with self.geck as geck:
  File "E:\conda\miniconda3\envs\stc-geck\Lib\site-packages\aiokit\aiothing.py", line 81, in __aenter__
    await self.start()
  File "E:\conda\miniconda3\envs\stc-geck\Lib\site-packages\aiokit\aiothing.py", line 39, in guarded_fn
    r = await fn(*args, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\conda\miniconda3\envs\stc-geck\Lib\site-packages\stc_geck\client.py", line 158, in start
    await self.summa_embed_server.start()
pyo3_asyncio.RustPanic: rust future panicked
ERROR:asyncio:Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x000002150BC38150>
ERROR:asyncio:Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x000002150BC384D0>

@chloechow

Update again and try this way:
geck --ipfs-http-base-url 127.0.0.1:8080 --ipfs-data-directory /ipns/standard-template-construct.org/data/nexus_science - search doi:10.3384/ecp1392a41

Better if you would have finally tested it and pinned used database by resolving /ipns/standard-template-construct.org/data/nexus_science to IPFS hash and then substituting resolved one into command:
geck --ipfs-http-base-url 127.0.0.1:8080 --ipfs-data-directory /ipns/<ipfs_hash> - search doi:10.3384/ecp1392a41

Code is instantly updating, it is hard for me to track such long-standing threads. Tho, feel free to create new one if find other bugs.

@the-superpirate
Thank you for the suggestion on resolving the IPNS name and pinning the database. I was able to run the geck command successfully and query data from my Windows machine!