bmtk
bmtk copied to clipboard
NameError: name 'comm' is not defined
After installation and running py.test
I get the following error:
(bmtk-env) user@user-S5520SC:~/bmtk/bmtk$ py.test
=========================================================================================== test session starts ===========================================================================================
platform linux -- Python 3.10.4, pytest-7.1.1, pluggy-1.0.0
rootdir: /home/user/bmtk
collected 322 items / 1 error / 2 skipped
================================================================================================= ERRORS ==================================================================================================
____________________________________________________________ ERROR collecting bmtk/tests/utils/reports/spike_trains/test_spikes_buffer_mpi.py _____________________________________________________________
tests/utils/reports/spike_trains/test_spikes_buffer_mpi.py:28: in <module>
STCSVMPIBufferV2(cache_dir=tmpdir())
tests/utils/reports/spike_trains/test_spikes_buffer_mpi.py:21: in tmpdir
tmp_dir = comm.bcast(tmp_dir, 0)
E NameError: name 'comm' is not defined
========================================================================================= short test summary info =========================================================================================
ERROR tests/utils/reports/spike_trains/test_spikes_buffer_mpi.py - NameError: name 'comm' is not defined
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
======================================================================================= 2 skipped, 1 error in 3.80s =======================================================================================
Could you please advice on how to solve this issue? Many thanks
It looks like mpi4py is not installed. If you are using conda you should be able to install it using
$ conda install mpi4py
mpi4py seems to be incompatible with python 3.10. The following worked:
conda create --name bmtk-env python=3.8
conda activate bmtk-env
conda install pytest
conda install mpi4py
git clone https://github.com/AllenInstitute/bmtk.git
cd bmtk
python setup.py install
cd bmtk
py.test
with an output:
=========================================================================================== test session starts ===========================================================================================
platform linux -- Python 3.8.0, pytest-7.1.1, pluggy-1.0.0
rootdir: /home/user/bmtk
collected 338 items / 2 skipped
tests/builder/test_connection_map.py ....... [ 2%]
tests/builder/test_connector.py ..... [ 3%]
tests/builder/test_densenetwork.py ...... [ 5%]
tests/builder/test_edge_iterator.py ... [ 6%]
tests/builder/test_edges_sorter.py ... [ 7%]
tests/builder/test_id_generator.py ...... [ 8%]
tests/builder/test_index_builders.py .. [ 9%]
tests/builder/test_iterator.py ........ [ 11%]
tests/builder/test_network.py ............ [ 15%]
tests/builder/test_network_mpi.py ssssssss [ 17%]
tests/builder/test_node_pool.py ..... [ 19%]
tests/builder/test_node_set.py ... [ 20%]
tests/builder/test_save_network.py ..... [ 21%]
tests/builder/auxi/test_edge_connectors.py .. [ 22%]
tests/builder/auxi/test_node_params.py ... [ 23%]
tests/simulator/bionet/test_biograph.py ss [ 23%]
tests/simulator/bionet/test_gids.py s [ 23%]
tests/simulator/bionet/test_nrn.py sssssss [ 26%]
tests/simulator/bionet/test_virtualcell.py sssssssss [ 28%]
tests/simulator/core/test_io_tools.py .. [ 29%]
tests/simulator/core/test_pyfunction_cache.py ...... [ 31%]
tests/simulator/core/test_simulation_config.py .. [ 31%]
tests/simulator/core/test_simulation_config_validator.py ... [ 32%]
tests/simulator/filternet/test_default_setters.py .................. [ 37%]
tests/simulator/filternet/lgnmodel/test_kernels.py ... [ 38%]
tests/simulator/filternet/lgnmodel/test_movie.py ... [ 39%]
tests/simulator/filternet/lgnmodel/test_subclass_metrics.py ...... [ 41%]
tests/simulator/filternet/lgnmodel/test_transferfunction.py . [ 41%]
tests/simulator/filternet/lgnmodel/test_units.py .... [ 42%]
tests/simulator/filternet/lgnmodel/test_utils.py . [ 43%]
tests/simulator/pointnet/test_multimeter_report.py ssss [ 44%]
tests/simulator/pointnet/test_pointgraph.py ss [ 44%]
tests/simulator/pointnet/test_pointnetwork.py sssssssssssssssss [ 50%]
tests/simulator/popnet/test_popgraph.py s [ 50%]
tests/simulator/utils/test_simulation_inputs.py ..... [ 51%]
tests/simulator/utils/test_simulation_reports.py .... [ 52%]
tests/utils/reports/compartment/test_compartment_reader.py .. [ 53%]
tests/utils/reports/compartment/test_compartment_writer.py ...... [ 55%]
tests/utils/reports/compartment/test_plotting.py ......... [ 57%]
tests/utils/reports/spike_trains/test_csv_adaptor.py .............. [ 62%]
tests/utils/reports/spike_trains/test_csv_adaptor_mpi.py ................ [ 66%]
tests/utils/reports/spike_trains/test_plotting.py .................... [ 72%]
tests/utils/reports/spike_trains/test_sonata_adaptor.py ....................... [ 79%]
tests/utils/reports/spike_trains/test_sonata_adaptor_mpi.py ................ [ 84%]
tests/utils/reports/spike_trains/test_spikes_buffer.py .................. [ 89%]
tests/utils/reports/spike_trains/test_spikes_buffer_mpi.py ................ [ 94%]
tests/utils/reports/spike_trains/test_spikes_core.py .... [ 95%]
tests/utils/sonata/test_config.py ........... [ 98%]
tests/utils/sonata/test_config_validator.py .... [100%]
============================================================================================ warnings summary =============================================================================================
utils/sonata/config/sonata_config.py:400
/home/user/bmtk/bmtk/utils/sonata/config/sonata_config.py:400: DeprecationWarning: invalid escape sequence \$
variables = [m for m in re.finditer('\$\{?[\w]+\}?', json_str)]
simulator/filternet/lgnmodel/util_fns.py:51
/home/user/bmtk/bmtk/simulator/filternet/lgnmodel/util_fns.py:51: DeprecationWarning: invalid escape sequence \D
gr_fnames_ord = sorted(gr_fnames, key=lambda x: (int(re.sub('\D', '', x)), x))
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
============================================================================== 287 passed, 53 skipped, 2 warnings in 49.38s ===============================================================================