Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gringo and clasp in Linux on version 3.0.11 #107

Open
jcrozum opened this issue Dec 15, 2023 · 10 comments
Open

gringo and clasp in Linux on version 3.0.11 #107

jcrozum opened this issue Dec 15, 2023 · 10 comments
Labels

Comments

@jcrozum
Copy link

jcrozum commented Dec 15, 2023

I just upgraded to version 3.0.11 on Linux and got an error because gringo and clasp could not be found. It looks like binaries/linux64/settings.cfg expects them to be packaged with the library, but they are not. When I changed the lines in this file to point to where I have them installed on my system, everything worked as expected.

@hklarner
Copy link
Owner

Are just the clasp / gringo binaries missing? Can you let me know the contents of your local pyboolnet/binaries directory? (mine is ~/.local/lib/python3.10/site-packages/pyboolnet/binaries)

@jcrozum
Copy link
Author

jcrozum commented Dec 19, 2023

That's right, it's just the clasp and gringo binaries that are missing, at least compared to what's in the mac64 and win64 folders here. I have the following:
image

In the settings.cfg file, the lines

gringo          = ./gringo-4.4.0/gringo
clasp           = ./clasp-3.1.1/clasp-3.1.1-x86-linux

are pointing to files and folders that do not exist.

@mallenjon
Copy link

Can confirm that I've also encountered this issue. I installed PyBoolNet 3.0.11 in a virtual environment within my organization's server. I wonder if the installation was blocked due to permission issues, since I don't have sudo privileges (seems like gringo and clasp need to be installed on the OS). However, there didn't seem to be any errors thrown in the installation process. Then again, there was no indication that gringo or clasp were successfully installed either. The workaround is having my HPC admin install gringo 4.4.0 and clasp 3.1.1 on our system.

@jcrozum is your situation similar?

@Samdeman35
Copy link

I also have this issue on Windows within Google Colab. When trying to run the pyboolnet.state_transition_graphs.add_style_default function I get the following error:

FileNotFoundError Traceback (most recent call last)
/usr/local/lib/python3.10/dist-packages/pyboolnet/external/potassco.py in potassco_handle(primes, type_, bounds, project, max_output, fname_asp, representation, extra_lines)
44 cmd_gringo = [CMD_GRINGO]
---> 45 proc_gringo = subprocess.Popen(cmd_gringo, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
46 cmd_clasp = [CMD_CLASP, f"--models={max_output}"] + params_clasp

6 frames
FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/lib/python3.10/dist-packages/pyboolnet/binaries/gringo-4.4.0/gringo'

During handling of the above exception, another exception occurred:

Exception Traceback (most recent call last)
/usr/local/lib/python3.10/dist-packages/pyboolnet/external/potassco.py in potassco_handle(primes, type_, bounds, project, max_output, fname_asp, representation, extra_lines)
72 log.info(f"command: {' '.join(cmd_gringo + ['|'] + cmd_clasp)}")
73
---> 74 raise Exception
75
76 if "ERROR" in error:

Exception:

@hklarner
Copy link
Owner

ok, can confirm that's a bug, am working on the fix.

@hklarner
Copy link
Owner

@jcrozum @mallenjon @Samdeman35 this problem should be fixed now. It seems that the binaries were simply not added to the repo. I have made a bugfix release 3.0.12 that contains the gringo and clasp executables.

I have verified that it works by installing pyboolnet into a fresh venv and running the trap-spaces command for a model from the repo (raf.bnet). The old version 3.0.11 crashed with error

$ pyboolnet trap-spaces raf.bnet 
pyboolnet version: 3.0.11
...
FileNotFoundError: [Errno 2] No such file or directory: './lib/python3.10/site-packages/pyboolnet/binaries/gringo-4.4.0/gringo'

The new version shows correct behaviour:

$ pyboolnet trap-spaces raf.bnet 
pyboolnet version: 3.0.12
001
11-
found 2 trap spaces.

Can anyone confirm it works? To install the latest version call

pip3 install git+https://github.com/hklarner/[email protected]

@mallenjon
Copy link

@hklarner just installed version 3.0.12 in a virtual environment where it was not working previously, can confirm that pyboolnet.attractors.compute_attractors is working as intended. thanks for resolving this!

@Samdeman35
Copy link

@hklarner thank you for the quick fix! However, when I try to install the new version using the pip command in Anaconda, the binaries folder is missing, which means I can't import PyBoolNet. I get the following error after running import pyboolnet

FileNotFoundError Traceback (most recent call last)
File ~\AppData\Roaming\Python\Python311\site-packages\pyboolnet\helpers.py:52, in read_nusmv_keywords_or_exit()
51 try:
---> 52 return read_nusmv_keywords()
53 except Exception as e:

File ~\AppData\Roaming\Python\Python311\site-packages\pyboolnet\helpers.py:46, in read_nusmv_keywords()
45 fname = os.path.join(ROOT_DIR, "binaries", "nusmvkeywords.json")
---> 46 with open(fname) as fp:
47 return ast.literal_eval(fp.read())

FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\Sam\AppData\Roaming\Python\Python311\site-packages\pyboolnet\binaries\nusmvkeywords.json'

During handling of the above exception, another exception occurred:

Exception Traceback (most recent call last)
Cell In[6], line 1
----> 1 import pyboolnet

File ~\AppData\Roaming\Python\Python311\site-packages\pyboolnet_init_.py:11
8 from pyboolnet.version import read_version_txt
10 VERSION = read_version_txt()
---> 11 NUSMV_KEYWORDS = read_nusmv_keywords_or_exit()
12 COLOR_MAP = {"red1": "#df3e47", "green1": "#4bb93f", "blue1": "#7463b3", "yellow1": "#eecf1a", "pink1": "#db42a6", "green2": "#4cbd38", "red2": "#df3d47", "yellow2": "#efce1a"}
13 COLORS = ["dodgerblue3", "firebrick2", "chartreuse3", "gold1", "aquamarine2", "darkorchid2"]

File ~\AppData\Roaming\Python\Python311\site-packages\pyboolnet\helpers.py:55, in read_nusmv_keywords_or_exit()
53 except Exception as e:
54 log.error(f"could not read NuSMV keywords: exception={e}")
---> 55 raise Exception

Exception:

@hklarner
Copy link
Owner

However, when I try to install the new version using the pip command in Anaconda, the binaries folder is missing

@Samdeman35 can you check whether this problem is still present in version 3.0.13? If so, please open a new issue "binaries missing in anaconda".

@Samdeman35
Copy link

Hi @hklarner, thank you for the fix, it works now again in 3.0.13!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants