Skip to content

Troubleshooting

Emanuele Uliana edited this page Oct 3, 2023 · 19 revisions

Troubleshooting

This page contains a number of useful checklists you can refer to when experiencing issues with VacuumWorld.

Why do I get <some-error> when installing VacuumWorld?

  • Are you trying to install VacuumWorld on an unsupported OS (such as all versions of MacOS/Windows)?

  • Did you create a virtualenv, as specified in the installation guide?

  • Is your python version ≥3.10?

  • Did you keep your virtualenv active throughout the entire procedure?

  • Did you misspell any of the commands?

  • Do you have any shell alias that might collide with one or more of the commands?

Why does VacuumWorld crash as soon as I run it?

  • Did you install VacuumWorld on an unsupported OS (such as all versions of MacOS/Windows)?

  • Did you create a virtualenv, as specified in the installation guide?

  • Is your python version ≥3.10?

  • Is your virtualenv active?

  • Are you using the most recent version of VacuumWorld?

  • Did you misspell any of the commands?

  • Are you correctly importing any non-built-in symbol that you use in your code?

  • Do you have any shell alias that might collide with one or more of the commands?

  • Is there any issue with your code (see next checklist)?

Why does my code make VacuumWorld crash?

  • Did you go through the previous checklist?

  • Did you remember to wrap run() with if __name__ == "__main__":, as per this guide?

  • Did you pass the surrogate mind(s) you coded to run() correctly? You might want to re-check this section.

  • If you passed additional arguments to run(), did you follow the rules specified here?

  • Did you unwrap the PyOptional[VWLocation] returned by an Observation API method, and checked that it is not empty before calling any of the VWLocation API methods?

  • More in general: are you checking that a PyOptional is not empty before unwrapping it, and calling any of the methods of the wrapped object?

  • Are you checking (or asserting) that a return value (or a method parameter) is not None before calling any of its methods? (This does not apply to PyOptional - see above)

  • Did you attempt to access anything private from a python object (anything starting with __)? Don't do that: use the API methods instead.

  • Are you using something that is specific to python2 (such as the print statement rather than print())? Remember, VacuumWorld requires and assumes python3.10+.

  • Did you try to load a corrupted file, or a file referring to an older version of VacuumWorld?

Why does VacuumWorld instantly close without any error as soon as I run it?

  • Did you remember to include the following lines of code (passing the appropriate mandatory and optional arguments to run()) in the file you are trying to run with python3?

# At the top of the file.
from vacuumworld import run

# ...

# At the bottom of the file.
if __name__ == "__main__":
    run(<arguments-here>)