biolab / orange3

🍊 :bar_chart: :bulb: Orange: Interactive data analysis
https://orangedatamining.com
Other
4.85k stars 1.01k forks source link

Orange3 crashes when trying to add a widget in Mac Catalina OS10.15: "IndexError: list index out of range" #5106

Closed jpstarpaper closed 3 years ago

jpstarpaper commented 3 years ago

I tried sending an error report, but when I do that, the error notification (the popup that appears onscreen at the moment I try to insert a widget) won't close.

Each time I try to close it, it pops up again. I have to close Orange, and relaunch it (but the error keeps occurring if I do the following steps).

I'm on Mac Catalina, OS10.15.7. I'm using Orange3 through the Anaconda Navigator.

The error occurs when I do the step at 2:57 in the YouTube tutorial (trying to insert the widget to edit domain; the error occurs the moment I choose "insert widget"). I've reproduced the error two times consecutively. It occurs at the same point each time, and each time I have to close and restart Orange from Anaconda Navigator.

The Orange tutorial I'm referring to is here:

https://www.youtube.com/watch?v=EfsqjFJC434&vl=en

Exception: | IndexError: list index out of range
-- | --
Module: | Orange.base:354
Version: | 3.23.1
Environment: | Python 3.7.6 on Darwin 19.6.0 Darwin Kernel Version 19.6.0: Mon Aug 31 22:12:52 PDT 2020; root:xnu-6153.141.2~1/RELEASE_X86_64 x86_64
Installed Packages: | AnyQt==0.0.10, Babel==2.8.1, Bottleneck==1.3.2, CacheControl==0.12.6, CairoSVG==2.4.2, Cython==0.29.21, Flask==1.1.2, HeapDict==1.0.1, Jinja2==2.11.2, Kivy-Garden==0.1.4, Kivy==1.11.1, LTTL==2.0.9, MarkupSafe==1.1.1, Orange3-Geo==0.2.7, Orange3-ImageAnalytics==0.4.1, Orange3-Network==1.5.0, Orange3-Text==0.8.0, Orange3-Textable==3.1.5, Orange3-Timeseries==0.3.6, Orange3==3.23.1, Pillow==8.0.1, PyPDF2==1.26.0, PySocks==1.7.1, PyWavelets==1.1.1, PyYAML==5.3.1, Pygments==2.7.2, Pyphen==0.9.5, QDarkStyle==2.8.1, QtAwesome==1.0.1, QtPy==1.9.0, Rtree==0.9.4, SQLAlchemy==1.3.20, Send2Trash==1.5.0, Shapely==1.7.0, Sphinx==3.2.1, WeasyPrint==51, Werkzeug==1.0.1, XlsxWriter==1.3.7, aiodns==2.0.0, aiohttp-socks==0.5.5, aiohttp==3.7.3, alabaster==0.7.12, anaconda-client==1.7.2, anaconda-navigator==1.10.0, anaconda-project==0.8.3, appdirs==1.4.3, applaunchservices==0.2.1, appnope==0.1.2, appscript==1.1.1, argh==0.26.2, argon2-cffi==20.1.0, asn1crypto==1.4.0, astroid==2.4.2, astropy==4.0.2, async-generator==1.10, async-timeout==3.0.1, atomicwrites==1.4.0, attrs==20.3.0, autocorrect==2.2.2, autopep8==1.5.4, backcall==0.2.0, backports.functools-lru-cache==1.6.1, backports.shutil-get-terminal-size==1.0.0, backports.tempfile==1.0, backports.weakref==1.0.post1, beautifulsoup4==4.9.3, biopython==1.76, bitarray==1.6.1, bkcharts==0.2, bleach==3.2.1, bokeh==2.2.3, boto3==1.12.46, boto==2.49.0, botocore==1.15.46, brotlipy==0.7.0, bs4==0.0.1, cairocffi==1.1.0, camelot-py==0.8.2, cchardet==2.1.7, certifi==2020.11.8, cffi==1.14.4, chardet==3.0.4, click==7.1.2, cloudpickle==1.6.0, clyent==1.2.2, colorama==0.4.4, commonmark==0.9.1, conda-build==3.20.4, conda-package-handling==1.7.2, conda-verify==3.4.2, conda==4.9.2, contextlib2==0.6.0.post1, corenlp==0.0.14, cryptography==3.2.1, cssselect2==0.3.0, cssselect==1.1.0, cycler==0.10.0, cytoolz==0.11.0, dask==2.30.0, dataclasses==0.6, decorator==4.4.2, defusedxml==0.6.0, dictdiffer==0.8.0, diff-match-patch==20200713, distlib==0.3.1, distributed==2.30.1, distro==1.5.0, docutils==0.16, docx2txt==0.8, elasticsearch==7.10.0, entrypoints==0.3, et-xmlfile==1.0.1, fake-useragent==0.1.11, fastcache==1.1.0, filelock==3.0.12, flake8==3.8.4, fsspec==0.8.3, future==0.18.2, gensim==3.8.2, geographiclib==1.50, geopy==2.0.0, gevent==20.9.0, glob2==0.7, gmpy2==2.0.8, googletransx==2.4.2, greenlet==0.4.17, h2==2.6.2, h5py==2.10.0, hpack==3.0.0, html5lib==1.1, hyperframe==3.2.0, hypertemp==0.8.0, idna==2.10, imageio==2.9.0, imagesize==1.2.0, importlib-metadata==2.0.0, iniconfig==1.1.1, intervaltree==3.1.0, ipykernel==5.3.4, ipython-genutils==0.2.0, ipython==7.19.0, ipywidgets==7.5.1, isort==5.6.4, itsdangerous==1.1.0, jdcal==1.4.1, jedi==0.14.1, jmespath==0.9.5, joblib==0.17.0, json5==0.9.5, jsonschema==3.2.0, jupyter-cjk-xelatex==0.2, jupyter-client==6.1.7, jupyter-console==6.2.0, jupyter-core==4.7.0, jupyter-dashboards==0.7.0, jupyter==1.0.0, jupyterlab-pygments==0.1.2, jupyterlab-server==1.2.0, jupyterlab==2.2.6, keyring==21.4.0, keyrings.alt==4.0.1, kiwisolver==1.3.0, lazy-object-proxy==1.4.3, libarchive-c==2.9, llvmlite==0.34.0, locket==0.2.0, lockfile==0.12.2, lxml==4.6.2, matplotlib==3.3.2, mccabe==0.6.1, mistune==0.8.4, mkl-fft==1.2.0, mkl-random==1.1.1, mkl-service==2.3.0, mock==4.0.2, more-itertools==8.6.0, mpmath==1.1.0, msgpack==1.0.0, multidict==5.0.2, multipledispatch==0.6.0, navigator-updater==0.2.1, nb-conda-kernels==2.3.0, nbclient==0.5.1, nbconvert==6.0.7, nbformat==5.0.8, ndf==0.1.4, nest-asyncio==1.4.3, networkx==2.5, nltk==3.5, nose==1.3.7, notebook==6.1.4, numba==0.51.2, numexpr==2.7.1, numpy==1.19.2, numpydoc==1.1.0, oauthlib==3.1.0, odfpy==1.4.1, olefile==0.46, openTSNE==0.3.11, openpyxl==3.0.5, orange-canvas-core==0.1.15, orange-widget-base==4.0.1, packaging==20.4, pandas-datareader==0.8.1, pandas==1.1.3, pandocfilters==1.4.3, parse==1.18.0, parso==0.5.2, partd==1.1.0, path==15.0.0, pathlib2==2.3.5, pathtools==0.1.2, patsy==0.5.1, pdfminer.six==20201018, pdfminer3k==1.3.1, pep8==1.7.1, pexpect==4.8.0, pickleshare==0.7.5, pip==20.3, pipenv==2020.11.4, pkginfo==1.6.1, pluggy==0.13.1, ply==3.11, prometheus-client==0.9.0, prompt-toolkit==3.0.8, protobuf==3.14.0, psutil==5.7.2, ptyprocess==0.6.0, py==1.9.0, pyOpenSSL==20.0.0, pycares==3.1.1, pycodestyle==2.6.0, pycosat==0.6.3, pycountry==19.8.18, pycparser==2.20, pycrypto==2.6.1, pycurl==7.43.0.6, pydocstyle==5.1.1, pyee==7.0.4, pyflakes==2.2.0, pylint==2.6.0, pynndescent==0.4.8, pyodbc==4.0.0-unsupported, pyparsing==2.4.7, pyppeteer==0.2.2, pyqtgraph==0.11.0, pyquery==1.4.1, pyrsistent==0.17.3, pytest==0.0.0, python-dateutil==2.8.1, python-jsonrpc-server==0.4.0, python-language-server==0.31.7, python-louvain==0.14, python-socks==1.1.1, pytz==2020.4, pyzmq==20.0.0, qtconsole==4.7.7, regex==2020.11.13, reportlab==3.5.51, requests-html==0.10.0, requests-oauthlib==1.3.0, requests==2.25.0, rfc3986==1.4.0, rope==0.18.0, ruamel-yaml==0.15.87, s3transfer==0.3.3, schedule==0.6.0, scikit-image==0.17.2, scikit-learn==0.23.2, scipy==1.5.2, seaborn==0.11.0, serverfiles==0.3.0, setuptools-git==1.2, setuptools==50.3.2, simhash==1.10.1, simplegeneric==0.8.1, simplejson==3.17.0, singledispatch==3.4.0.3, six==1.15.0, smart-open==1.11.1, snowballstemmer==2.0.0, sortedcollections==1.2.1, sortedcontainers==2.2.2, soupsieve==2.0.1, sphinxcontrib-applehelp==1.0.2, sphinxcontrib-devhelp==1.0.2, sphinxcontrib-htmlhelp==1.0.3, sphinxcontrib-jsmath==1.0.1, sphinxcontrib-qthelp==1.0.3, sphinxcontrib-serializinghtml==1.1.4, sphinxcontrib-websupport==1.2.4, spyder-kernels==1.8.1, spyder==4.0.1, stanfordnlp==0.2.0, statsmodels==0.12.0, stopwords==0.1.3, sympy==1.6.2, tables==3.6.1, tabula-py==2.1.0, tabulate==0.8.7, tblib==1.7.0, terminado==0.9.1, testpath==0.4.4, threadpoolctl==2.1.0, tifffile==2020.10.1, tinycss2==1.0.2, toml==0.10.1, toolz==0.11.1, torch==1.7.0, tornado==6.0.4, tqdm==4.51.0, traitlets==5.0.5, treetaggerwrapper==2.3, tweepy==3.8.0, twint==2.1.20, twitter==1.18.0, typed-ast==1.4.1, typing-extensions==3.7.4.3, ufal.udpipe==1.2.0.3, ujson==4.0.1, unicodecsv==0.14.1, urllib3==1.25.11, virtualenv-clone==0.5.4, virtualenv==20.1.0, w3lib==1.22.0, watchdog==0.10.3, wcwidth==0.2.5, webencodings==0.5.1, websockets==8.1, wheel==0.35.1, widgetsnbextension==3.5.1, wikipedia==1.4.0, wordcloud==1.8.1, wrapt==1.11.2, wurlitzer==2.0.1, xhtml2pdf==0.2.4, xlrd==1.2.0, xlwings==0.20.8, xlwt==1.3.0, xmltodict==0.12.0, yapf==0.30.0, yarl==1.6.3, zict==2.0.0, zipp==3.4.0, zope.event==4.5.0, zope.interface==5.1.2
Machine ID: |  
Stack Trace: | Traceback (most recent call last):   File "/opt/anaconda3/lib/python3.7/site-packages/orangecanvas/document/quickmenu.py", line 487, in filterAcceptsRow     return self.__filterFunc(index)   File "/opt/anaconda3/lib/python3.7/site-packages/orangecanvas/document/schemeedit.py", line 1890, in filterFunc     return can_insert_node(desc, original_link)   File "/opt/anaconda3/lib/python3.7/site-packages/orangecanvas/document/schemeedit.py", line 2409, in can_insert_node     for output in new_node_desc.outputs)   File "/opt/anaconda3/lib/python3.7/site-packages/orangecanvas/document/schemeedit.py", line 2409, in <genexpr>     for output in new_node_desc.outputs)   File "/opt/anaconda3/lib/python3.7/site-packages/orangecanvas/scheme/link.py", line 83, in compatible_channels     strict, dynamic = _classify_connection(source_channel, sink_channel)   File "/opt/anaconda3/lib/python3.7/site-packages/orangecanvas/scheme/link.py", line 100, in _classify_connection     source_types = resolved_valid_types(source.types)   File "/opt/anaconda3/lib/python3.7/site-packages/orangecanvas/scheme/link.py", line 74, in resolved_valid_types     return tuple(filter(None, resolve_types(types)))   File "/opt/anaconda3/lib/python3.7/site-packages/orangecanvas/scheme/link.py", line 49, in resolve_types     rt.append(type_lookup(t))   File "/opt/anaconda3/lib/python3.7/site-packages/orangecanvas/utils/__init__.py", line 102, in type_lookup     rval = name_lookup(qualified_name)   File "/opt/anaconda3/lib/python3.7/site-packages/orangecanvas/utils/__init__.py", line 80, in name_lookup     module = __import__(module_name, fromlist=[class_name])   File "/opt/anaconda3/lib/python3.7/site-packages/Orange/modelling/__init__.py", line 6, in <module>     from .ada_boost import *   File "/opt/anaconda3/lib/python3.7/site-packages/Orange/modelling/ada_boost.py", line 2, in <module>     from Orange.ensembles import (   File "/opt/anaconda3/lib/python3.7/site-packages/Orange/ensembles/__init__.py", line 5, in <module>     from .stack import *   File "/opt/anaconda3/lib/python3.7/site-packages/Orange/ensembles/stack.py", line 91, in <module>     class StackedClassificationLearner(StackedLearner, LearnerClassification):   File "/opt/anaconda3/lib/python3.7/site-packages/Orange/ensembles/stack.py", line 99, in StackedClassificationLearner     def __init__(self, learners, aggregate=LogisticRegressionLearner(), k=5,   File "/opt/anaconda3/lib/python3.7/site-packages/Orange/classification/logistic_regression.py", line 46, in __init__     self.params = vars()   File "/opt/anaconda3/lib/python3.7/site-packages/Orange/base.py", line 347, in params     self._params = self._get_sklparams(value)   File "/opt/anaconda3/lib/python3.7/site-packages/Orange/base.py", line 354, in _get_sklparams     assert spec.args[0] == "self" IndexError: list index out of range
Local Variables: | OrderedDict([('self',               LogisticRegressionLearner(penalty=<?>, dual=<?>, tol=<?>, C=<?>, fit_intercept=<?>, intercept_scaling=<?>, class_weight=<?>, random_state=<?>, solver=<?>, max_iter=<?>, multi_class=<?>, verbose=<?>, n_jobs=<?>)),              ('skllearner',               <class 'sklearn.linear_model._logistic.LogisticRegression'>),              ('spec', Arguments(args=[], varargs='args', varkw='kwargs')),              ('values',               {'C': 1.0,                '__class__': <class 'Orange.classification.logistic_regression.LogisticRegressionLearner'>,                'class_weight': None,                'dual': False,                'fit_intercept': True,                'intercept_scaling': 1,                'max_iter': 100,                'multi_class': 'ovr',                'n_jobs': 1,                'penalty': 'l2',                'preprocessors': None,                'random_state': None,                'self': LogisticRegressionLearner(penalty=<?>, dual=<?>, tol=<?>, C=<?>, fit_intercept=<?>, intercept_scaling=<?>, class_weight=<?>, random_state=<?>, solver=<?>, max_iter=<?>, multi_class=<?>, verbose=<?>, n_jobs=<?>),                'solver': 'liblinear',                'tol': 0.0001,                'verbose': 0})])

Perform the step at 2:57 in the YouTube tutorial: insert a widget between the icons for Datasets and Merge Data (you'd be inserting it in order to edit the merged data by changing the country names).

I'm uploading my file, named: orange_tutorial_basic_covid_hdi.ows.zip

  1. Right click on the line connecting the Datasets icon, and the Merge Data icon. Click on Insert Widget.
  2. A popup, showing the traceback, appears. If I click on "Send Report" the popup disappears for a moment, then reappears. If I click on IGNORE, the same behavior occurs. The report can't be permanently closed.
  3. At that point I have to close Orange and relaunch.

https://orange.biolab.si/download/https://download.biolab.si/download/files/Orange3-3.27.1-Python3.7.6.dmg orange_error_report_traceback_when_trying_to_insert_widget_screenshot orange_tutorial_basic_covid_hdi.ows.zip

jpstarpaper commented 3 years ago

This is a screenshot of my layout in Orange, right up to the point where the traceback occurs. orange_error_report_traceback_when_trying_to_insert_widget_screenshot

jpstarpaper commented 3 years ago

I tried attaching a zip file of my workflow, but I don't see it in the first comment, so I'm trying again here. orange_tutorial_basic_covid_hdi.ows.zip

markotoplak commented 3 years ago

@jpstarpaper, thank you for your detailed report.

May I ask where did you find the link you mentioned? For me the ones on https://orange.biolab.si/download/ seem to work.

jpstarpaper commented 3 years ago

My apologies markotoplak that was a cut and paste error on my part. I'm downloading the dmg now and it's going fine.

jpstarpaper commented 3 years ago

The main issue isn't resolved. It was a cut and paste error with the URL for downloading Orange. Not with the widget forcing a crash.

janezd commented 3 years ago

I see.

Just checking: you wrote that you got this error with Orange 3.23.1. Is this true or did you mean 3.27.1?

jpstarpaper commented 3 years ago

Janezd, thank you. Yes, I got the error with Orange 3.23.1, running it through Anaconda Navigator on Mac 10.15.7. Last night I downloaded the dmg file for 3.27.1 and I'll be testing it in a few hours.

janezd commented 3 years ago

How did it go? Does it work?