Can't get past TypeError

Code

from rasa_nlu.training_data import load_data
from rasa_nlu.model import Trainer
from rasa_nlu import config

from rasa_nlu.model import Interpreter

def train_horoscopebot(data_json, config_file, model_dir):
    training_data = load_data(data_json)
    trainer = Trainer(config.load(config_file))
    trainer.train(training_data)
    model_directory = trainer.persist(model_dir, fixed_model_name = 'horoscopebot')


def predict_intent(text):
    interpreter = Interpreter.load('./models/nlu/default/horoscopebot')
    print(interpreter.parse(text))

train_horoscopebot('./data/data.json', 'config.json', './models/nlu')\

Error:

TypeError: an integer is required (got type bytes)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/tmp/ipykernel_4705/812069718.py in <module>
----> 1 train_horoscopebot('./data/data.json', 'config.json', './models/nlu')

/tmp/ipykernel_4705/3632756658.py in train_horoscopebot(data_json, config_file, model_dir)
      7 def train_horoscopebot(data_json, config_file, model_dir):
      8     training_data = load_data(data_json)
----> 9     trainer = Trainer(config.load(config_file))
     10     trainer.train(training_data)
     11     model_directory = trainer.persist(model_dir, fixed_model_name = 'horoscopebot')

~/horoscope_bot/venv/lib/python3.8/site-packages/rasa_nlu/model.py in __init__(self, cfg, component_builder, skip_validation)
    145         # required packages are available
    146         if not self.skip_validation:
--> 147             components.validate_requirements(cfg.component_names)
    148 
    149         # build pipeline

~/horoscope_bot/venv/lib/python3.8/site-packages/rasa_nlu/components.py in validate_requirements(component_names)
     36     for component_name in component_names:
     37         component_class = registry.get_component_class(component_name)
---> 38         failed_imports.update(find_unavailable_packages(
     39             component_class.required_packages()))
     40     if failed_imports:  # pragma: no cover

~/horoscope_bot/venv/lib/python3.8/site-packages/rasa_nlu/components.py in find_unavailable_packages(package_names)
     21     for package in package_names:
     22         try:
---> 23             importlib.import_module(package)
     24         except ImportError:
     25             failed_imports.add(package)

/usr/lib/python3.8/importlib/__init__.py in import_module(name, package)
    125                 break
    126             level += 1
--> 127     return _bootstrap._gcd_import(name[level:], package, level)
    128 
    129 

/usr/lib/python3.8/importlib/_bootstrap.py in _gcd_import(name, package, level)

/usr/lib/python3.8/importlib/_bootstrap.py in _find_and_load(name, import_)

/usr/lib/python3.8/importlib/_bootstrap.py in _find_and_load_unlocked(name, import_)

/usr/lib/python3.8/importlib/_bootstrap.py in _load_unlocked(spec)

/usr/lib/python3.8/importlib/_bootstrap_external.py in exec_module(self, module)

/usr/lib/python3.8/importlib/_bootstrap.py in _call_with_frames_removed(f, *args, **kwds)

~/horoscope_bot/venv/lib/python3.8/site-packages/sklearn/__init__.py in <module>
     62 else:
     63     from . import __check_build
---> 64     from .base import clone
     65     from .utils._show_versions import show_versions
     66 

~/horoscope_bot/venv/lib/python3.8/site-packages/sklearn/base.py in <module>
     12 from scipy import sparse
     13 from .externals import six
---> 14 from .utils.fixes import signature
     15 from .utils import _IS_32BIT
     16 from . import __version__

~/horoscope_bot/venv/lib/python3.8/site-packages/sklearn/utils/__init__.py in <module>
     12 from .murmurhash import murmurhash3_32
     13 from .class_weight import compute_class_weight, compute_sample_weight
---> 14 from . import _joblib
     15 from ..exceptions import DataConversionWarning
     16 from .fixes import _Sequence as Sequence

~/horoscope_bot/venv/lib/python3.8/site-packages/sklearn/utils/_joblib.py in <module>
     20         from joblib import parallel_backend, register_parallel_backend
     21 else:
---> 22     from ..externals import joblib
     23     from ..externals.joblib import logger
     24     from ..externals.joblib import dump, load

~/horoscope_bot/venv/lib/python3.8/site-packages/sklearn/externals/joblib/__init__.py in <module>
    117 from .numpy_pickle import load
    118 from .compressor import register_compressor
--> 119 from .parallel import Parallel
    120 from .parallel import delayed
    121 from .parallel import cpu_count

~/horoscope_bot/venv/lib/python3.8/site-packages/sklearn/externals/joblib/parallel.py in <module>
     26 from .my_exceptions import TransportableException
     27 from .disk import memstr_to_bytes
---> 28 from ._parallel_backends import (FallbackToBackend, MultiprocessingBackend,
     29                                  ThreadingBackend, SequentialBackend,
     30                                  LokyBackend)

~/horoscope_bot/venv/lib/python3.8/site-packages/sklearn/externals/joblib/_parallel_backends.py in <module>
     20     from .pool import MemmappingPool
     21     from multiprocessing.pool import ThreadPool
---> 22     from .executor import get_memmapping_executor
     23 
     24     # Compat between concurrent.futures and multiprocessing TimeoutError

~/horoscope_bot/venv/lib/python3.8/site-packages/sklearn/externals/joblib/executor.py in <module>
     12 from .disk import delete_folder
     13 from ._memmapping_reducer import get_memmapping_reducers
---> 14 from .externals.loky.reusable_executor import get_reusable_executor
     15 
     16 

~/horoscope_bot/venv/lib/python3.8/site-packages/sklearn/externals/joblib/externals/loky/__init__.py in <module>
     10 
     11 from .backend.context import cpu_count
---> 12 from .backend.reduction import set_loky_pickler
     13 from .reusable_executor import get_reusable_executor
     14 from .cloudpickle_wrapper import wrap_non_picklable_objects

~/horoscope_bot/venv/lib/python3.8/site-packages/sklearn/externals/joblib/externals/loky/backend/reduction.py in <module>
    123 # global variable to change the pickler behavior
    124 try:
--> 125     from sklearn.externals.joblib.externals import cloudpickle  # noqa: F401
    126     DEFAULT_ENV = "cloudpickle"
    127 except ImportError:

~/horoscope_bot/venv/lib/python3.8/site-packages/sklearn/externals/joblib/externals/cloudpickle/__init__.py in <module>
      1 from __future__ import absolute_import
      2 
----> 3 from .cloudpickle import *
      4 
      5 __version__ = '0.8.0'

~/horoscope_bot/venv/lib/python3.8/site-packages/sklearn/externals/joblib/externals/cloudpickle/cloudpickle.py in <module>
    150 
    151 
--> 152 _cell_set_template_code = _make_cell_set_template_code()
    153 
    154 

~/horoscope_bot/venv/lib/python3.8/site-packages/sklearn/externals/joblib/externals/cloudpickle/cloudpickle.py in _make_cell_set_template_code()
    131         )
    132     else:
--> 133         return types.CodeType(
    134             co.co_argcount,
    135             co.co_kwonlyargcount,

TypeError: an integer is required (got type bytes)

I’ve reinstalled it twice and tried building from source, im not sure what to do. python version 3.8.10 i used pip install rasa-nlu to install rasa

The rasa-nlu library is rather old. Rasa used to be two libraries that are merged into one now.

It’s best to install via;

python -m pip install rasa

Once installed, you can train Rasa after creating a new project.

rasa init
rasa train