TypeError: cannot pickle 'fortran' object

I get the same error. This is on OS X. The following code:

#!/usr/bin/env python
import bambi, pandas
df = pandas.DataFrame({"y": [1, 3], "group": ["a", "b"]})
model = bambi.Model("y ~ group", df)
model.fit(cores=4)

Results in this traceback:

WARNING (pytensor.tensor.blas): Using NumPy C-API based implementation for BLAS functions.
Auto-assigning NUTS sampler...
Initializing NUTS using jitter+adapt_diag...
Multiprocess sampling (4 chains in 4 jobs)
NUTS: [y_sigma, Intercept, group]
Traceback (most recent call last):
  File "error.py", line 7, in <module>
    model.fit(cores=4)
  File "/Users/terry/miniconda3/envs/310/lib/python3.10/site-packages/bambi/models.py", line 325, in fit
    return self.backend.run(
  File "/Users/terry/miniconda3/envs/310/lib/python3.10/site-packages/bambi/backend/pymc.py", line 96, in run
    result = self._run_mcmc(
  File "/Users/terry/miniconda3/envs/310/lib/python3.10/site-packages/bambi/backend/pymc.py", line 172, in _run_mcmc
    idata = pm.sample(
  File "/Users/terry/miniconda3/envs/310/lib/python3.10/site-packages/pymc/sampling/mcmc.py", line 766, in sample
    _mp_sample(**sample_args, **parallel_args)
  File "/Users/terry/miniconda3/envs/310/lib/python3.10/site-packages/pymc/sampling/mcmc.py", line 1141, in _mp_sample
    sampler = ps.ParallelSampler(
  File "/Users/terry/miniconda3/envs/310/lib/python3.10/site-packages/pymc/sampling/parallel.py", line 400, in __init__
    step_method_pickled = cloudpickle.dumps(step_method, protocol=-1)
  File "/Users/terry/miniconda3/envs/310/lib/python3.10/site-packages/cloudpickle/cloudpickle_fast.py", line 73, in dumps
    cp.dump(obj)
  File "/Users/terry/miniconda3/envs/310/lib/python3.10/site-packages/cloudpickle/cloudpickle_fast.py", line 632, in dump
    return Pickler.dump(self, obj)
    TypeError: cannot pickle 'fortran' object

This is on OS X 13.4.1 with Python 3.10 and pymc 5.6.1.

Thanks for any help!

Terry

1 Like