AVSLab / bsk_rl

RL environments and tools for spacecraft autonomy research, built on Basilisk. Developed by the AVS Lab.
https://avslab.github.io/bsk_rl/
MIT License
39 stars 4 forks source link

Python >=3.9 is required, but 3.10 typing features are used #170

Open hhlei opened 1 month ago

hhlei commented 1 month ago

Describe the bug When I follow the installation instructions, I'm getting this error on the pip install -e . && finish_install step:

Traceback (most recent call last): File "C:\Users\henry.lei\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 197, in _run_module_as_main return _run_code(code, main_globals, None, File "C:\Users\henry.lei\AppData\Local\Programs\Python\Python39\lib\runpy.py", line 87, in _run_code exec(code, run_globals) File "C:\Users\henry.lei\Documents\Projects\basilisk.venv\Scripts\finish_install.exe__main__.py", line 4, in from bsk_rl.finish_install import pck_install File "C:\Users\henry.lei\Documents\Projects\bsk_rl\src\bsk_rl__init.py", line 5, in from bsk_rl.gym import ConstellationTasking, GeneralSatelliteTasking, SatelliteTasking File "C:\Users\henry.lei\Documents\Projects\bsk_rl\src\bsk_rl\gym.py", line 14, in from bsk_rl.comm import CommunicationMethod, NoCommunication File "C:\Users\henry.lei\Documents\Projects\bsk_rl\src\bsk_rl\comm\init__.py", line 49, in from bsk_rl.comm.communication import ( File "C:\Users\henry.lei\Documents\Projects\bsk_rl\src\bsk_rl\comm\communication.py", line 11, in from bsk_rl.sim.dyn import LOSCommDynModel File "C:\Users\henry.lei\Documents\Projects\bsk_rl\src\bsk_rl\sim\dyn.py", line 66, in from bsk_rl.sim import world File "C:\Users\henry.lei\Documents\Projects\bsk_rl\src\bsk_rl\sim\world.py", line 41, in from bsk_rl.utils.functional import collect_default_args, default_args File "C:\Users\henry.lei\Documents\Projects\bsk_rl\src\bsk_rl\utils\functional.py", line 7, in from typing import Any, Callable, ParamSpec, TypeVar ImportError: cannot import name 'ParamSpec' from 'typing' (C:\Users\henry.lei\AppData\Local\Programs\Python\Python39\lib\typing.py)

To Reproduce pip install -e . && finish_install

Expected behavior Basilisk example code looks like it works as expected. bsk-rl fails on installing it into the pip environment and running finish_install.

Version (please complete the following information):

Additional context Add any other context about the problem here.

Mark2000 commented 1 month ago

Ah, try using Python 3.10 instead for now. It looks like we’re using some 3.10-specific typing features. I’ll look into either removing those or requiring 3.10 in the installation instructions.

hhlei commented 1 month ago

Python 3.10 seems to have worked! However, I'm getting a different error now on the same installation step:

ModuleNotFoundError: No module named 'Basilisk.architecture.cMsgCInterfacePy'

I see from the basilisk site that this module is deprecated and to use messaging, but I'm not sure which basilisk version that refers to

Mark2000 commented 1 month ago

To my current knowledge, that shouldn’t be an issue but I’ll look into testing with the latest a Basilisk version. Did you manage to run any of the Basilisk example scripts?

hhlei commented 1 month ago

I've only tried python scenarioBasicOrbit.py, which was the testing example from their installation instructions. That one seemed to run fine.

edit: I tried a couple more, they also seem work.

Mark2000 commented 1 month ago

Odd, I’ll look into reproducing this issue later today. It sounds like the deprecated import should still be available.

Mark2000 commented 1 month ago

I am unable to reproduce ModuleNotFoundError: No module named 'Basilisk.architecture.cMsgCInterfacePy'. However, I created a branch that should eliminate that import: https://github.com/AVSLab/bsk_rl/pull/171

Please try checking out that branch and seeing if it works.