Nengo simulator can cause error when run jupyter notebook in vscode/pycharm.
As long as you run the simulator using jupyter notebook in either vscode or jupyter:
model = nengo.Network()
with model:
ens_1d = nengo.Ensemble(15, dimensions=1)
with nengo.Simulator(model) as sim:
eval_points, activities = tuning_curves(ens_1d, sim)
I get following output from vscode/pycharm:
The error message will overwrite the cell, and even cannot be cleared. Interestingly, in browser, it is ok. It looks like this the error is related with frontend language or framework. Then I found it is the progress bar caused this problem. I tested with different progress bar, only no progress bar or terminal progress bar can avoid this problem. AutoProgressBar, IPython5ProgressBar, VdomOrHtmlProgressBar, HtmlProgressBar, VdomProgressBar all can cause this error.
Maybe it is better to use terminal progress bar by default? This requires minimal dependency and should work on all platforms.
I tested with a fresh anaconda environment, problem reamins, here is the env speficication:
name: nengo
channels:
- defaults
dependencies: - _libgcc_mutex=0.1=main
- attrs=19.3.0=py_0
- backcall=0.1.0=py36_0
- blas=1.0=mkl
- bleach=3.1.0=py36_0
- ca-certificates=2020.1.1=0
- certifi=2019.11.28=py36_1
- cycler=0.10.0=py36_0
- dbus=1.13.12=h746ee38_0
- decorator=4.4.2=py_0
- defusedxml=0.6.0=py_0
- entrypoints=0.3=py36_0
- expat=2.2.6=he6710b0_0
- fontconfig=2.13.0=h9420a91_0
- freetype=2.9.1=h8a8886c_1
- glib=2.63.1=h5a9c865_0
- gmp=6.1.2=h6c8ec71_1
- gst-plugins-base=1.14.0=hbbd80ab_1
- gstreamer=1.14.0=hb453b48_1
- icu=58.2=h9c2bf20_1
- importlib_metadata=1.5.0=py36_0
- intel-openmp=2020.0=166
- ipykernel=5.1.4=py36h39e3cac_0
- ipython=7.13.0=py36h5ca1d4c_0
- ipython_genutils=0.2.0=py36_0
- jedi=0.16.0=py36_1
- jinja2=2.11.1=py_0
- jpeg=9b=h024ee3a_2
- jsonschema=3.2.0=py36_0
- jupyter_client=6.1.2=py_0
- jupyter_core=4.6.3=py36_0
- kiwisolver=1.1.0=py36he6710b0_0
- ld_impl_linux-64=2.33.1=h53a641e_7
- libedit=3.1.20181209=hc058e9b_0
- libffi=3.2.1=hd88cf55_4
- libgcc-ng=9.1.0=hdf63c60_0
- libgfortran-ng=7.3.0=hdf63c60_0
- libpng=1.6.37=hbc83047_0
- libsodium=1.0.16=h1bed415_0
- libstdcxx-ng=9.1.0=hdf63c60_0
- libuuid=1.0.3=h1bed415_2
- libxcb=1.13=h1bed415_1
- libxml2=2.9.9=hea5a465_1
- markupsafe=1.1.1=py36h7b6447c_0
- matplotlib=3.1.3=py36_0
- matplotlib-base=3.1.3=py36hef1b27d_0
- mistune=0.8.4=py36h7b6447c_0
- mkl=2020.0=166
- mkl-service=2.3.0=py36he904b0f_0
- mkl_fft=1.0.15=py36ha843d7b_0
- mkl_random=1.1.0=py36hd6b4f25_0
- nbconvert=5.6.1=py36_0
- nbformat=5.0.4=py_0
- ncurses=6.2=he6710b0_0
- notebook=6.0.3=py36_0
- numpy-base=1.18.1=py36hde5b4d6_1
- openssl=1.1.1f=h7b6447c_0
- pandoc=2.2.3.2=0
- pandocfilters=1.4.2=py36_1
- parso=0.6.2=py_0
- pcre=8.43=he6710b0_0
- pexpect=4.8.0=py36_0
- pickleshare=0.7.5=py36_0
- pip=20.0.2=py36_1
- prometheus_client=0.7.1=py_0
- prompt-toolkit=3.0.4=py_0
- prompt_toolkit=3.0.4=0
- ptyprocess=0.6.0=py36_0
- pygments=2.6.1=py_0
- pyparsing=2.4.6=py_0
- pyqt=5.9.2=py36h05f1152_2
- pyrsistent=0.16.0=py36h7b6447c_0
- python=3.6.10=hcf32534_1
- python-dateutil=2.8.1=py_0
- pyzmq=18.1.1=py36he6710b0_0
- qt=5.9.7=h5867ecd_1
- readline=8.0=h7b6447c_0
- send2trash=1.5.0=py36_0
- setuptools=46.1.3=py36_0
- sip=4.19.8=py36hf484d3e_0
- six=1.14.0=py36_0
- sqlite=3.31.1=h7b6447c_0
- terminado=0.8.3=py36_0
- testpath=0.4.4=py_0
- tk=8.6.8=hbc83047_0
- tornado=6.0.4=py36h7b6447c_1
- traitlets=4.3.3=py36_0
- wcwidth=0.1.9=py_0
- webencodings=0.5.1=py36_1
- wheel=0.34.2=py36_0
- xz=5.2.4=h14c3975_4
- zeromq=4.3.1=he6710b0_3
- zipp=2.2.0=py_0
- zlib=1.2.11=h7b6447c_3
- pip:
- nengo==3.0.0
- numpy==1.18.2