tetherless-world / whyis

Whyis is a nano-scale knowledge graph publishing, management, and analysis framework.
Apache License 2.0
52 stars 30 forks source link

Cannot run with Pythons 3.12.1 or 3.11. Docker cannot find `whyis` command. #321

Closed aindilis closed 7 months ago

aindilis commented 7 months ago

Hi,

This looks like great software! Thanks for releasing this software!

I have a great need of good Text to KG capabilties.

I am having trouble running whyis:

=========

I used miniconda and installed Python 3.12.1:



(base) andrewdo@ai2:/var/lib/myfrdcsa/sandbox/whyis-20240205/whyis-20240205/les-mis-kg$ conda activate whyis
(whyis) andrewdo@ai2:/var/lib/myfrdcsa/sandbox/whyis-20240205/whyis-20240205/les-mis-kg$ whyis
Traceback (most recent call last):
  File "/home/andrewdo/miniconda3/envs/whyis/bin/whyis", line 5, in <module>
    from whyis.manager import main
  File "/home/andrewdo/miniconda3/envs/whyis/lib/python3.12/site-packages/whyis/manager.py", line 5, in <module>
    from whyis import commands
  File "/home/andrewdo/miniconda3/envs/whyis/lib/python3.12/site-packages/whyis/commands/__init__.py", line 5, in <module>
    from .load_nanopub import LoadNanopub
  File "/home/andrewdo/miniconda3/envs/whyis/lib/python3.12/site-packages/whyis/commands/load_nanopub.py", line 16, in <module>
    from whyis.blueprint.nanopub.nanopub_utils import load_nanopub_graph
  File "/home/andrewdo/miniconda3/envs/whyis/lib/python3.12/site-packages/whyis/blueprint/nanopub/__init__.py", line 2, in <module>
    from .delete_nanopub import delete_nanopub as __delete_nanopub
  File "/home/andrewdo/miniconda3/envs/whyis/lib/python3.12/site-packages/whyis/blueprint/nanopub/delete_nanopub.py", line 4, in <module>
    from whyis.blueprint.nanopub.nanopub_utils import get_nanopub_uri
  File "/home/andrewdo/miniconda3/envs/whyis/lib/python3.12/site-packages/whyis/blueprint/nanopub/nanopub_utils.py", line 5, in <module>
    import sadi.mimeparse
  File "/home/andrewdo/miniconda3/envs/whyis/lib/python3.12/site-packages/sadi/__init__.py", line 4, in <module>
    from .sadi import *
  File "/home/andrewdo/miniconda3/envs/whyis/lib/python3.12/site-packages/sadi/sadi.py", line 3, in <module>
    from future import standard_library
  File "/home/andrewdo/miniconda3/envs/whyis/lib/python3.12/site-packages/future/standard_library/__init__.py", line 65, in <module>
    import imp
ModuleNotFoundError: No module named 'imp'```

---

```pip install imp
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
ERROR: Could not find a version that satisfies the requirement imp (from versions: none)
ERROR: No matching distribution found for imp```

=========

I used miniconda and installed Python 3.11:

---

```andrewdo@ai2:/var/lib/myfrdcsa/sandbox/whyis-20240205/whyis-20240205/les-mis-kg$ startconda
(base) andrewdo@ai2:/var/lib/myfrdcsa/sandbox/whyis-20240205/whyis-20240205/les-mis-kg$ conda activate whyis-3.11
(whyis-3.11) andrewdo@ai2:/var/lib/myfrdcsa/sandbox/whyis-20240205/whyis-20240205/les-mis-kg$ whyis
registering <function memory_driver at 0x7f71e4605760> memory
registering <function oxigraph_driver at 0x7f71e4605a80> oxigraph
registering <function sparql_driver at 0x7f71e4605b20> sparql
False
Traceback (most recent call last):
  File "/home/andrewdo/miniconda3/envs/whyis-3.11/bin/whyis", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/andrewdo/miniconda3/envs/whyis-3.11/lib/python3.11/site-packages/whyis/manager.py", line 124, in main
    app = m.app()
          ^^^^^^^
  File "/home/andrewdo/miniconda3/envs/whyis-3.11/lib/python3.11/site-packages/whyis/app_factory.py", line 17, in app_factory
    import_config_module(_app)
  File "/home/andrewdo/miniconda3/envs/whyis-3.11/lib/python3.11/site-packages/whyis/config/utils.py", line 18, in import_config_module
    app.config.from_pyfile('whyis.conf')
  File "/home/andrewdo/miniconda3/envs/whyis-3.11/lib/python3.11/site-packages/flask/config.py", line 132, in from_pyfile
    exec(compile(config_file.read(), filename, "exec"), d.__dict__)
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/media/andrewdo/s3/sandbox-new/whyis-20240205/whyis-20240205/les-mis-kg/whyis.conf", line 3
    from les-mis-kg.agent import *
            ^
SyntaxError: invalid syntax```

=========

I used docker and docker exec (I had to guess the exec command), but could when I tried to import the trig file:

---

```andrewdo@ai2:/var/lib/myfrdcsa/sandbox/whyis-20240205/whyis-20240205/kgapp$ docker exec -it 5864a39bece7 /bin/bash
root@5864a39bece7: /var/lib/myfrdcsa/sandbox/whyis-20240205/whyis-20240205/kgapproot@5864a39bece7:/var/lib/myfrdcsa/sandbox/whyis-20240205/whyis-20240205/kgapp# whyis
whyis
bash: whyis: command not found```

=========

I tried various other exec commands, but never could locate the whyis executable or script.

Thanks for your time!

Sincerely,
Andrew Dougherty
aindilis commented 7 months ago

Hi,

It worked using Python=3.9.

Thanks, Andrew