mschrader15 / reinforcement-learning-sumo

Reinforcement Learning + traffic microsimulation (via SUMO). Uses Ray RLLIB and forces SUMO into the OpenAI Gym Framework
https://maxschrader.io/reinforcement-learning-and-sumo
45 stars 9 forks source link

ImportError: cannot import name 'get_parameters' from 'rl_sumo.helpers.utils' (/media/ubuntu/diskB/reinforcement-learning-sumo/rl_sumo/helpers/utils.py) #5

Closed kimchuan-utem closed 2 years ago

kimchuan-utem commented 2 years ago

(app39-dev) ubuntu@ubuntu-H8QG6:/media/ubuntu/diskB/reinforcement-learning-sumo$ python train.py

Traceback (most recent call last): File "/media/ubuntu/diskB/reinforcement-learning-sumo/train.py", line 7, in from rl_sumo.helpers.preprocessing import execute_preprocessing_tasks File "/media/ubuntu/diskB/reinforcement-learning-sumo/rl_sumo/helpers/preprocessing.py", line 2, in import json5 as json ModuleNotFoundError: No module named 'json5' (app39-dev) ubuntu@ubuntu-H8QG6:/media/ubuntu/diskB/reinforcement-learning-sumo$ pip install json5 Collecting json5 Downloading json5-0.9.8.tar.gz (22 kB) Preparing metadata (setup.py) ... done Building wheels for collected packages: json5 Building wheel for json5 (setup.py) ... done Created wheel for json5: filename=json5-0.9.8-py2.py3-none-any.whl size=18604 sha256=f121186c35cfd4acedd7579d7a17e6d0c4433f4dd724e99f4307f500dc3e15af Stored in directory: /home/ubuntu/.cache/pip/wheels/33/13/22/d6429949983cbc014ae883a13af8b3ce949adcc4cf9196a4b9 Successfully built json5 Installing collected packages: json5 Successfully installed json5-0.9.8 (app39-dev) ubuntu@ubuntu-H8QG6:/media/ubuntu/diskB/reinforcement-learning-sumo$ python train.py

Traceback (most recent call last): File "/media/ubuntu/diskB/reinforcement-learning-sumo/train.py", line 8, in from rl_sumo.helpers.utils import get_parameters ImportError: cannot import name 'get_parameters' from 'rl_sumo.helpers.utils' (/media/ubuntu/diskB/reinforcement-learning-sumo/rl_sumo/helpers/utils.py)

mschrader15 commented 2 years ago

This should be fixed in https://github.com/mschrader15/reinforcement-learning-sumo/commit/c1cf08ca9a1f62cc22c4d00110f4d95e36cb2afb

Sorry for the bugs. I haven't actively used this in ~ a year

kimchuan-utem commented 2 years ago

(app39-dev) ubuntu@ubuntu-H8QG6:/media/ubuntu/diskB/reinforcement-learning-sumo$ python train.py

Traceback (most recent call last): File "/media/ubuntu/diskB/reinforcement-learning-sumo/train.py", line 64, in main() File "/home/ubuntu/.pyenv/versions/app39-dev/lib/python3.9/site-packages/click/core.py", line 1128, in call return self.main(args, kwargs) File "/home/ubuntu/.pyenv/versions/app39-dev/lib/python3.9/site-packages/click/core.py", line 1053, in main rv = self.invoke(ctx) File "/home/ubuntu/.pyenv/versions/app39-dev/lib/python3.9/site-packages/click/core.py", line 1395, in invoke return ctx.invoke(self.callback, ctx.params) File "/home/ubuntu/.pyenv/versions/app39-dev/lib/python3.9/site-packages/click/core.py", line 754, in invoke return __callback(args, **kwargs) File "/media/ubuntu/diskB/reinforcement-learning-sumo/train.py", line 51, in _main env_params, sim_params = get_parameters(config_path) File "/media/ubuntu/diskB/reinforcement-learning-sumo/rl_sumo/helpers/preprocessing.py", line 17, in get_parameters with open(input_object, 'rb') as f: TypeError: expected str, bytes or os.PathLike object, not NoneType

do i need to provide input arguments to begin the training?

mschrader15 commented 2 years ago

Yes you do. An example is in the example folder.

You can run it with python train.py --config_path example/setting-files/ES_4_25.json

kimchuan-utem commented 2 years ago

(app39-dev) ubuntu@ubuntu-H8QG6:/media/ubuntu/diskB/reinforcement-learning-sumo$ python train.py --config_path example/setting-files/ES_4_25.json

Traceback (most recent call last): File "/media/ubuntu/diskB/reinforcement-learning-sumo/trainers/training_functions.py", line 90, in run_rllib_es from ray.rllib.agents.agent import get_agent_class ModuleNotFoundError: No module named 'ray.rllib.agents.agent'

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/media/ubuntu/diskB/reinforcement-learning-sumo/train.py", line 64, in main() File "/home/ubuntu/.pyenv/versions/app39-dev/lib/python3.9/site-packages/click/core.py", line 1128, in call return self.main(args, kwargs) File "/home/ubuntu/.pyenv/versions/app39-dev/lib/python3.9/site-packages/click/core.py", line 1053, in main rv = self.invoke(ctx) File "/home/ubuntu/.pyenv/versions/app39-dev/lib/python3.9/site-packages/click/core.py", line 1395, in invoke return ctx.invoke(self.callback, ctx.params) File "/home/ubuntu/.pyenv/versions/app39-dev/lib/python3.9/site-packages/click/core.py", line 754, in invoke return __callback(args, **kwargs) File "/media/ubuntu/diskB/reinforcement-learning-sumo/train.py", line 56, in _main TRAINING_FUNCTIONS[env_params.algorithm.lower()](sim_params, env_params) File "/media/ubuntu/diskB/reinforcement-learning-sumo/trainers/training_functions.py", line 92, in run_rllib_es from ray.rllib.agents.registry import get_agent_class ImportError: cannot import name 'get_agent_class' from 'ray.rllib.agents.registry' (/home/ubuntu/.pyenv/versions/app39-dev/lib/python3.9/site-packages/ray/rllib/agents/registry.py)

mschrader15 commented 2 years ago

which version of ray do you have installed?

kimchuan-utem commented 2 years ago

(app39-dev) ubuntu@ubuntu-H8QG6:/media/ubuntu/diskB/reinforcement-learning-sumo$ pip show ray Name: ray Version: 1.13.0 Summary: Ray provides a simple, universal API for building distributed applications. Home-page: https://github.com/ray-project/ray Author: Ray Team Author-email: ray-dev@googlegroups.com License: Apache 2.0 Location: /home/ubuntu/.pyenv/versions/3.9-dev/envs/app39-dev/lib/python3.9/site-packages Requires: aiosignal, attrs, click, filelock, frozenlist, grpcio, jsonschema, msgpack, numpy, protobuf, pyyaml, requests, virtualenv Required-by:

mschrader15 commented 2 years ago

Ok. You need to have ray<=1.12.0 installed. Ray made large updates to their codebase in 1.13.0.

You are also welcome to find the equivalent function in 1.13.0 and make a PR!