spyder-ide / spyder

Official repository for Spyder - The Scientific Python Development Environment
https://www.spyder-ide.org
MIT License
8.33k stars 1.61k forks source link

Warning, that pyxdg is not installed #16448

Closed sphh closed 3 years ago

sphh commented 3 years ago

Issue Report Checklist

Problem Description

Spyder complains, that xdg is not installed, but xdg is installed: Screenshot from 2021-09-19 14-13-47

I cannot say, if that happened, after upgrading Spyder from 5.1.4 to 5.1.4 or upgrading pyxdg from 0.26 to 0.27.

pyxdg-0.26 was installed through my Linux package management system. After uninstalling it, I installed with pip3 install pyxdg, which gave me version 0.27. I can load it with

>>> import xdg
>>> dir(xdg)
['__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__']

>>> from xdg import BaseDirectory
>>> dir(BaseDirectory)
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_home', 'get_runtime_dir', 'load_config_paths', 'load_data_paths', 'load_first_config', 'os', 'save_cache_path', 'save_config_path', 'save_data_path', 'stat', 'xdg_cache_home', 'xdg_config_dirs', 'xdg_config_home', 'xdg_data_dirs', 'xdg_data_home']

Unfortunately it does not reveal the version, hence:

$ ls -d /usr/local/lib/python3.8/dist-packages/*xdg*
/usr/local/lib/python3.8/dist-packages/pyxdg-0.27.dist-info
/usr/local/lib/python3.8/dist-packages/xdg

I started spyder with the --debug-info verbose argument. The only line which contains xdg is:

2021-09-19 14:06:51,413 [DEBUG] [matplotlib] -> loaded modules: ['sys', 'builtins', '_frozen_importlib', '_imp', '_warnings', '_io', 'marshal', 'posix', '_frozen_importlib_external', '_thread', '_weakref', 'time', 'zipimport', '_codecs', 'codecs', 'encodings.aliases', 'encodings', 'encodings.utf_8', '_signal', '__main__', 'encodings.latin_1', '_abc', 'abc', 'io', '_stat', 'stat', '_collections_abc', 'genericpath', 'posixpath', 'os.path', 'os', '_sitebuiltins', '_locale', '_bootlocale', 'types', 'importlib._bootstrap', 'importlib._bootstrap_external', 'warnings', 'importlib', 'importlib.machinery', 'importlib.abc', '_operator', 'operator', 'keyword', '_heapq', 'heapq', 'itertools', 'reprlib', '_collections', 'collections', '_functools', 'functools', 'contextlib', 'importlib.util', 'lazr', 'mpl_toolkits', 'google', 'ruamel', 'sphinxcontrib', 'straight', 'apport_python_hook', 'sitecustomize', 'site', 'enum', '_sre', 'sre_constants', 'sre_parse', 'sre_compile', 'copyreg', 're', 'spyder', 'spyder.app', '_ctypes', '_struct', 'struct', 'ctypes._endian', 'ctypes', 'token', 'tokenize', 'linecache', 'traceback', '_weakrefset', 'weakref', 'collections.abc', '_string', 'string', 'threading', 'atexit', 'logging', 'math', '_bisect', 'bisect', '_sha512', '_random', 'random', '_socket', 'select', 'selectors', 'errno', 'socket', 'platform', 'typing.io', 'typing.re', 'typing', 'zmq.backend.select', 'cython_runtime', 'zmq.backend.cython.constants', '_cython_0_29_24', 'zmq.backend.cython.error', 'zmq.error', 'zmq.backend.cython.message', 'zmq.backend.cython.context', 'copy', '_compat_pickle', '_pickle', 'pickle', 'zmq.backend.cython.socket', 'zmq.backend.cython.utils', 'zmq.backend.cython._poll', 'zmq.backend.cython._version', 'zmq.backend.cython._device', 'zmq.backend.cython._proxy_steerable', 'zmq.backend.cython', 'zmq.backend', 'zmq.utils', 'zmq.utils.constant_names', 'zmq.sugar.constants', 'zmq.sugar.attrsettr', 'zmq.sugar.poll', '_json', 'json.scanner', 'json.decoder', 'json.encoder', 'json', 'zmq.utils.jsonapi', 'zmq.utils.strtypes', 'zmq.sugar.socket', 'zmq.sugar.context', 'zmq.sugar.frame', 'zmq.sugar.tracker', 'zmq.sugar.version', 'zmq.sugar.stopwatch', 'zmq.sugar', 'zmq', 'locale', 'gettext', 'argparse', 'spyder.app.cli_options', 'spyder.config', '__future__', 'termios', 'getpass', 'fnmatch', 'zlib', '_compression', '_bz2', 'bz2', '_lzma', 'lzma', 'pwd', 'grp', 'shutil', 'tempfile', 'signal', '_posixsubprocess', 'subprocess', '_uuid', 'uuid', 'configparser', '_queue', 'queue', 'binascii', 'base64', 'spyder.py3compat', 'spyder.utils', 'chardet.enums', 'chardet.charsetprober', 'chardet.charsetgroupprober', 'chardet.codingstatemachine', 'chardet.escsm', 'chardet.escprober', 'chardet.latin1prober', 'chardet.mbcssm', 'chardet.utf8prober', 'chardet.mbcharsetprober', 'chardet.euctwfreq', 'chardet.euckrfreq', 'chardet.gb2312freq', 'chardet.big5freq', 'chardet.jisfreq', 'chardet.chardistribution', 'chardet.jpcntx', 'chardet.sjisprober', 'chardet.eucjpprober', 'chardet.gb2312prober', 'chardet.euckrprober', 'chardet.cp949prober', 'chardet.big5prober', 'chardet.euctwprober', 'chardet.mbcsgroupprober', 'chardet.hebrewprober', 'chardet.sbcharsetprober', 'chardet.langbulgarianmodel', 'chardet.langgreekmodel', 'chardet.langhebrewmodel', 'chardet.langrussianmodel', 'chardet.langthaimodel', 'chardet.langturkishmodel', 'chardet.sbcsgroupprober', 'chardet.universaldetector', 'chardet.version', 'chardet', 'fcntl', 'atomicwrites', 'spyder.utils.external', 'spyder.utils.external.binaryornot', 'spyder.utils.external.binaryornot.helpers', 'spyder.utils.external.binaryornot.check', 'ntpath', 'urllib', 'urllib.parse', 'pathlib', 'spyder.utils.encoding', 'spyder.config.base', '_ast', 'ast', 'textwrap', 'glob', 'zipfile', 'pkgutil', '_datetime', 'datetime', 'xml', 'xml.parsers', 'pyexpat.errors', 'pyexpat.model', 'pyexpat', 'xml.parsers.expat.model', 'xml.parsers.expat.errors', 'xml.parsers.expat', 'plistlib', 'email', 'email.errors', 'email.quoprimime', 'email.base64mime', 'quopri', 'email.encoders', 'email.charset', 'email.header', 'calendar', 'email._parseaddr', 'email.utils', 'email._policybase', 'email.feedparser', 'email.parser', '_opcode', 'opcode', 'dis', 'inspect', 'pkg_resources.extern', 'pkg_resources._vendor', 'pkg_resources._vendor.appdirs', 'pkg_resources.extern.appdirs', 'pkg_resources._vendor.packaging.__about__', 'pkg_resources._vendor.packaging', 'pkg_resources.extern.packaging', 'pkg_resources.extern.packaging._structures', 'pkg_resources.extern.packaging._typing', 'pkg_resources.extern.packaging.version', 'pkg_resources.extern.packaging._compat', 'pkg_resources.extern.packaging.utils', 'pkg_resources.extern.packaging.specifiers', 'pprint', 'pkg_resources._vendor.pyparsing', 'pkg_resources.extern.pyparsing', 'pkg_resources.extern.packaging.markers', 'pkg_resources.extern.packaging.requirements', 'sysconfig', 'pkg_resources', 'psutil._common', 'psutil._compat', 'psutil._psposix', 'psutil._psutil_linux', 'psutil._psutil_posix', 'psutil._pslinux', 'psutil', 'spyder_kernels._version', 'spyder_kernels', 'spyder_kernels.utils', 'tarfile', 'spyder_kernels.py3compat', 'spyder_kernels.utils.misc', 'spyder_kernels.utils.lazymodules', 'spyder.otherplugins', 'spyder_kernels.utils.iofuncs', 'spyder.config.utils', 'spyder.utils.misc', 'spyder.utils.programs', 'spyder.utils.external.lockfile', 'spyder.app.start', 'spyder.api._version', 'spyder.api', 'spyder.api.utils', 'spyder.config.fonts', 'spyder.config.appearance', 'spyder.plugins', 'spyder.plugins.editor', 'spyder.plugins.editor.utils', 'spyder.plugins.editor.utils.findtasks', 'spyder.utils.introspection', 'pickleshare', 'spyder.utils.introspection.module_completion', 'spyder.config.main', 'spyder.config.types', 'spyder.config.user', 'spyder.config.manager', 'gc', 'spyder.requirements', 'distutils', 'distutils.version', 'qtpy._version', 'PyQt5', 'sip', 'PyQt5.sip', 'PyQt5.QtCore', 'qtpy', 'qtpy._patch', 'qtpy._patch.qcombobox', 'qtpy._patch.qheaderview', 'PyQt5.QtGui', 'PyQt5.QtWidgets', 'qtpy.QtWidgets', 'qtpy.py3compat', 'qtpy.compat', 'qtpy.QtCore', 'qtpy.QtGui', 'PyQt5.QtSvg', 'qtpy.QtSvg', 'PyQt5.QtNetwork', 'PyQt5.QtWebEngineCore', 'PyQt5.QtWebChannel', 'PyQt5.QtPrintSupport', 'PyQt5.QtWebEngineWidgets', 'qtpy.QtWebEngineWidgets', 'qtawesome._version', 'qtawesome.animation', '_hashlib', '_blake2', '_sha3', 'hashlib', 'qtawesome.iconic_font', 'qtawesome', 'spyder.dependencies', 'spyder.utils.external.dafsa', 'spyder.utils.external.dafsa.dafsa', 'qtconsole._version', 'qtconsole', 'colorsys', 'pygments', 'pygments.plugin', 'pygments.util', 'pygments.styles', 'pygments.token', 'qtconsole.styles', 'pygments.filter', 'pygments.filters', 'pygments.regexopt', 'pygments.lexer', 'pygments.lexers._mapping', 'pygments.modeline', 'pygments.lexers', 'spyder.plugins.editor.utils.languages', 'spyder.plugins.editor.utils.editor', 'spyder.utils.workers', 'spyder.plugins.outlineexplorer', 'spyder.plugins.outlineexplorer.api', 'spyder.utils.qstringhelpers', 'spyder.utils.syntaxhighlighters', 'spyder.config.gui', 'spyder.utils.image_path_manager', 'qdarkstyle.dark', 'qdarkstyle.colorsystem', 'qdarkstyle.palette', 'qdarkstyle.dark.palette', 'qdarkstyle.light', 'qdarkstyle.light.palette', 'qdarkstyle', 'spyder.utils.color_system', 'spyder.utils.palette', 'mimetypes', 'spyder.utils.icon_manager', 'spyder.utils.registries', 'spyder.widgets', 'spyder.widgets.waitingspinner', 'spyder.utils.qthelpers', 'PyQt5.QtQml', 'PyQt5.QtQuick', 'qtpy.QtQuick', 'spyder.app.utils', 'spyder.api.plugin_registration', 'spyder.api.exceptions', 'spyder.api.plugins.enum', 'qstylizer', 'webencodings.labels', 'encodings.utf_16_le', 'encodings.utf_16_be', 'webencodings', 'tinycss2.serializer', 'tinycss2.ast', 'tinycss2.tokenizer', 'tinycss2.parser', 'tinycss2.bytes', 'tinycss2', 'unicodedata', 'inflection', 'qstylizer.descriptor', 'qstylizer.descriptor.stylerule', 'qstylizer.descriptor.prop', 'qstylizer.descriptor.subcontrol', 'qstylizer.descriptor.pseudostate', 'qstylizer.descriptor.pseudoprop', 'qstylizer.descriptor.qclass', 'qstylizer.style', 'qstylizer.parser', 'qdarkstyle.light.style_rc', 'spyder.utils.stylesheet', 'spyder.widgets.dock', 'spyder.plugins.base', 'spyder.api.plugins.old_api', 'spyder.api.config', 'spyder.api.config.mixins', 'spyder.api.plugin_registration.mixins', 'spyder.api.translations', 'spyder.api.widgets', 'spyder.api.widgets.menus', 'spyder.api.widgets.mixins', 'spyder.api.widgets.main_container', 'spyder.api.widgets.auxiliary_widgets', 'spyder.api.widgets.toolbars', 'spyder.widgets.tabs', 'spyder.api.widgets.main_widget', 'spyder.api.plugins.new_api', 'spyder.api.plugins', 'spyder.api.plugin_registration.registry', 'spyder.app.find_plugins', 'spyder.app.mainwindow', 'spyder.plugins.help', 'spyder.plugins.help.utils', 'xml.sax.handler', 'xml.sax._exceptions', 'xml.sax.xmlreader', 'xml.sax', 'http', 'uu', 'email._encoded_words', 'email.iterators', 'email.message', '_ssl', 'ssl', 'http.client', 'urllib.response', 'urllib.error', 'urllib.request', 'xml.sax.saxutils', 'docutils', 'docutils.nodes', 'docutils.utils.error_reporting', 'docutils.io', 'docutils.utils', 'jinja2.bccache', 'markupsafe._speedups', 'markupsafe', 'jinja2.utils', 'jinja2.nodes', 'jinja2.exceptions', 'jinja2.visitor', 'jinja2.idtracking', 'jinja2.optimizer', 'jinja2.compiler', 'jinja2.async_utils', 'jinja2.runtime', 'jinja2.filters', 'numbers', 'jinja2.tests', 'jinja2.defaults', 'jinja2._identifier', 'jinja2.lexer', 'jinja2.parser', 'jinja2.environment', 'jinja2.loaders', 'jinja2', 'sphinx.deprecation', 'sphinx', 'optparse', 'docutils.frontend', 'docutils.parsers', 'docutils.statemachine', 'docutils.languages', 'docutils.parsers.rst.languages', 'docutils.parsers.rst.languages.en', 'docutils.parsers.rst.directives', 'pygments.formatters._mapping', 'pygments.formatters', 'pygments.formatter', 'pygments.formatters.html', 'docutils.utils.code_analyzer', 'docutils.parsers.rst.roles', 'docutils.parsers.rst.tableparser', 'docutils.utils.punctuation_chars', 'docutils.utils.roman', 'docutils.utils.urischemes', 'docutils.parsers.rst.states', 'docutils.transforms', 'docutils.utils.smartquotes', 'docutils.transforms.universal', 'docutils.parsers.rst', 'sphinx.locale', 'sphinx.errors', 'logging.handlers', 'colorama.ansi', 'colorama.win32', 'colorama.winterm', 'colorama.ansitowin32', 'colorama.initialise', 'colorama', 'sphinx.util.console', 'sphinx.util.logging', 'filecmp', 'sphinx.testing', 'sphinx.testing.path', 'sphinx.util.osutil', 'sphinx.util.matching', 'sphinx.addnodes', 'sphinx.util.nodes', 'sphinx.util.typing', 'sphinx.util', 'array', '_decimal', 'decimal', 'babel._compat', 'babel.localedata', 'babel.plural', 'babel.core', 'babel', 'pytz.exceptions', 'pytz.lazy', 'pytz.tzinfo', 'pytz.tzfile', 'pytz', 'babel.localtime._unix', 'babel.localtime', 'babel.util', 'babel.dates', 'html.entities', 'html', 'cgi', 'difflib', 'babel.messages.plurals', 'babel.messages.catalog', 'babel.messages', 'babel.messages.mofile', 'babel.messages.pofile', 'sphinx.util.i18n', 'sphinx.util.tags', 'sphinx.config', 'sphinx.util.docutils', 'sphinx.roles', 'sphinx.domains', 'sphinx.environment.adapters', 'sphinx.environment.adapters.toctree', 'sphinx.pycode.ast', 'sphinx.pycode.parser', 'sphinx.pycode', 'sphinx.util.inspect', 'sphinx.events', 'sphinx.project', 'docutils.transforms.parts', 'sphinx.transforms', 'sphinx.environment', 'sphinx.environment.collectors', 'sphinx.extension', 'pygments.formatters.latex', 'pygments.lexers.c_cpp', 'pygments.unistring', 'pygments.lexers.python', 'pygments.lexers.javascript', 'pygments.lexers.jvm', 'pygments.lexers.css', 'pygments.lexers.ruby', 'pygments.lexers.html', 'pygments.lexers.markup', 'pygments.lexers.special', 'pygments.style', 'pygments.styles.friendly', 'sphinx.pygments_styles', 'sphinx.util.texescape', 'sphinx.highlighting', 'sphinx.environment.adapters.asset', 'docutils.readers', 'docutils.writers', 'docutils.readers.doctree', 'docutils.core', 'docutils.transforms.frontmatter', 'docutils.transforms.references', 'docutils.transforms.misc', 'docutils.readers.standalone', 'sphinx.util.docfields', 'sphinx.directives', 'sphinx.domains.std', 'sphinx.transforms.i18n', 'sphinx.transforms.references', 'sphinx.versioning', 'sphinx.io', 'sphinx.util.rst', 'sphinx.util.build_phase', 'multiprocessing.process', 'multiprocessing.reduction', 'multiprocessing.context', '__mp_main__', 'multiprocessing', 'sphinx.util.parallel', 'sphinx.builders', 'sphinx.parsers', 'sphinx.registry', 'sphinx.theming', 'sphinx.application', 'spyder.plugins.help.utils.sphinxify', 'spyder.utils.stringmatching', 'spyder.widgets.helperwidgets', 'spyder.widgets.switcher', 'spyder.plugins.appearance', 'spyder.api.plugin_registration.decorators', 'spyder.plugins.preferences', 'spyder.widgets.colors', 'spyder.widgets.comboboxes', 'spyder.plugins.preferences.api', 'spyder.api.preferences', 'spyder.plugins.appearance.widgets', 'spyder_kernels.utils.dochelpers', 'spyder.utils.sourcecode', 'spyder.widgets.arraybuilder', 'spyder.widgets.mixins', 'spyder.widgets.simplecodeeditor', 'spyder.plugins.appearance.confpage', 'spyder.plugins.appearance.plugin', 'spyder.plugins.application', 'spyder.plugins.application.confpage', 'spyder.plugins.console', 'spyder.plugins.console.widgets', 'spyder.api.config.decorators', 'spyder.plugins.console.utils', '_sysconfigdata__x86_64-linux-gnu', 'pydoc', 'codeop', 'code', 'spyder.plugins.console.utils.interpreter', 'spyder.plugins.editor.widgets', 'spyder.widgets.calltip', 'spyder.plugins.editor.api', 'spyder.plugins.editor.api.decoration', 'spyder.api.manager', 'spyder.plugins.editor.utils.decoration', 'spyder.plugins.completion', 'spyder.plugins.completion.api', 'spyder.plugins.editor.widgets.completion', 'spyder.plugins.editor.widgets.base', 'spyder.plugins.console.utils.ansihandler', 'spyder.plugins.console.widgets.console', 'spyder.plugins.console.widgets.shell', 'spyder.plugins.variableexplorer', 'spyder.plugins.variableexplorer.widgets', 'dateutil._version', 'dateutil', 'six', 'dateutil._common', 'dateutil.relativedelta', 'six.moves', 'dateutil.tz._common', 'dateutil.tz._factories', 'dateutil.tz.tz', 'dateutil.tz', 'dateutil.parser._parser', 'dateutil.parser.isoparser', 'dateutil.parser', 'spyder_kernels.utils.nsview', 'spyder.plugins.variableexplorer.widgets.basedialog', 'spyder.plugins.variableexplorer.widgets.arrayeditor', 'numpy._globals', 'numpy.__config__', 'numpy._version', 'numpy._distributor_init', 'numpy.version', 'numpy.core._multiarray_umath', 'numpy.compat._inspect', 'numpy.compat.py3k', 'numpy.compat', 'numpy.core.overrides', 'numpy.core.multiarray', 'numpy.core.umath', 'numpy.core._string_helpers', 'numpy.core._dtype', 'numpy.core._type_aliases', 'numpy.core.numerictypes', 'numpy.core._exceptions', 'numpy.core._methods', 'numpy.core.fromnumeric', 'numpy.core.shape_base', 'numpy.core._ufunc_config', 'numpy.core.arrayprint', 'numpy.core._asarray', 'numpy.core.numeric', 'numpy.core.defchararray', 'numpy.core.records', 'numpy.core.memmap', 'numpy.core.function_base', 'numpy.core.machar', 'numpy.core.getlimits', 'numpy.core.einsumfunc', 'numpy.core._multiarray_tests', 'numpy.core._add_newdocs', 'numpy.core._add_newdocs_scalars', 'numpy.core._dtype_ctypes', 'numpy.core._internal', 'numpy._pytesttester', 'numpy.core', 'numpy.lib.mixins', 'numpy.lib.ufunclike', 'numpy.lib.type_check', 'numpy.lib.scimath', 'numpy.lib.stride_tricks', 'numpy.lib.twodim_base', 'numpy.linalg.lapack_lite', 'numpy.linalg._umath_linalg', 'numpy.linalg.linalg', 'numpy.linalg', 'numpy.matrixlib.defmatrix', 'numpy.matrixlib', 'numpy.lib.histograms', 'numpy.lib.function_base', 'numpy.lib.index_tricks', 'numpy.lib.nanfunctions', 'numpy.lib.shape_base', 'numpy.lib.polynomial', 'numpy.lib.utils', 'numpy.lib.arraysetops', 'numpy.lib.format', 'numpy.lib._datasource', 'numpy.lib._iotools', 'numpy.lib.npyio', 'numpy.lib.arrayterator', 'numpy.lib.arraypad', 'numpy.lib._version', 'numpy.lib', 'numpy.fft._pocketfft_internal', 'numpy.fft._pocketfft', 'numpy.fft.helper', 'numpy.fft', 'numpy.polynomial.polyutils', 'numpy.polynomial._polybase', 'numpy.polynomial.polynomial', 'numpy.polynomial.chebyshev', 'numpy.polynomial.legendre', 'numpy.polynomial.hermite', 'numpy.polynomial.hermite_e', 'numpy.polynomial.laguerre', 'numpy.polynomial', 'numpy.random._common', 'hmac', 'secrets', 'numpy.random.bit_generator', 'numpy.random._bounded_integers', 'numpy.random._mt19937', 'numpy.random.mtrand', 'numpy.random._philox', 'numpy.random._pcg64', 'numpy.random._sfc64', 'numpy.random._generator', 'numpy.random._pickle', 'numpy.random', 'numpy.ctypeslib', 'numpy.ma.core', 'numpy.ma.extras', 'numpy.ma', 'numpy', 'spyder.plugins.variableexplorer.widgets.dataframeeditor', 'spyder.plugins.variableexplorer.widgets.texteditor', 'spyder.plugins.variableexplorer.widgets.objectexplorer.attribute_model', 'spyder.plugins.variableexplorer.widgets.objectexplorer.utils', 'spyder.plugins.variableexplorer.widgets.objectexplorer.tree_item', 'spyder.plugins.variableexplorer.widgets.objectexplorer.tree_model', 'spyder.plugins.variableexplorer.widgets.objectexplorer.toggle_column_mixin', 'spyder.plugins.variableexplorer.widgets.objectexplorer.objectexplorer', 'spyder.plugins.variableexplorer.widgets.objectexplorer', 'spyder.plugins.variableexplorer.widgets.collectionsdelegate', 'spyder.plugins.variableexplorer.widgets.importwizard', 'spyder.widgets.collectionseditor', 'spyder.plugins.variableexplorer.widgets.objecteditor', 'spyder.plugins.console.widgets.internalshell', 'spyder.utils.environ', 'spyder.widgets.findreplace', 'spyder.widgets.github', 'shlex', 'webbrowser', '_csv', 'csv', 'zipp', 'importlib_metadata._functools', 'importlib_metadata._text', 'importlib_metadata._adapters', 'importlib_metadata._compat', 'importlib_metadata._meta', 'importlib_metadata._collections', 'importlib_metadata._itertools', 'importlib_metadata', 'keyring.credentials', 'keyring.errors', 'keyring.util', 'keyring.util.properties', 'keyring.backend', 'keyring.util.platform_', 'keyring.backends', 'keyring.backends.fail', 'keyring.core', 'keyring', 'spyder.utils.external.github', 'spyder.widgets.github.gh_login', 'spyder.widgets.github.backend', 'spyder.widgets.reporterror', 'spyder.plugins.console.widgets.main_widget', 'spyder.plugins.console.api', 'spyder.widgets.about', 'spyder.widgets.dependencies', 'spyder.workers', 'spyder.workers.updates', 'spyder.plugins.application.container', 'spyder.plugins.mainmenu', 'spyder.plugins.mainmenu.api', 'spyder.plugins.application.plugin', 'spyder.plugins.breakpoints', 'spyder.plugins.breakpoints.widgets', 'spyder.plugins.breakpoints.widgets.main_widget', 'spyder.plugins.breakpoints.plugin', 'spyder.plugins.completion.confpage', 'spyder.plugins.completion.container', 'spyder.plugins.completion.plugin', 'qtpy.QtPrintSupport', 'spyder.api.editorextension', 'spyder.api.panel', 'spyder.plugins.editor.confpage', 'spyder.plugins.editor.widgets.autosaveerror', 'spyder.plugins.editor.widgets.recover', 'spyder.plugins.editor.utils.autosave', 'spyder.utils.switcher', 'spyder.plugins.editor.utils.switcher', 'spyder.plugins.editor.widgets.codeeditor_widgets', 'diff_match_patch.diff_match_patch', 'diff_match_patch', 'IPython.core', 'IPython.core.getipython', 'IPython.core.release', 'traitlets.utils', 'traitlets.utils.getargspec', 'traitlets.utils.importstring', 'traitlets.utils.sentinel', 'traitlets.utils.bunch', 'traitlets.utils.descriptions', 'traitlets.traitlets', 'traitlets.utils.decorators', 'traitlets._version', 'traitlets', 'traitlets.config.loader', 'traitlets.utils.text', 'traitlets.config.configurable', 'traitlets.config.application', 'traitlets.config', 'bdb', 'IPython.utils', 'IPython.utils.ipstruct', 'IPython.utils.coloransi', 'IPython.utils.colorable', 'IPython.utils.PyColorize', 'IPython.utils.encoding', 'IPython.utils.py3compat', 'IPython.core.excolors', 'IPython.testing', 'IPython.testing.skipdoctest', 'cmd', 'pdb', 'IPython.core.debugger', 'IPython.core.display_trap', 'pexpect.exceptions', 'pexpect.utils', 'pexpect.expect', 'tty', 'pty', 'resource', 'ptyprocess.util', 'ptyprocess.ptyprocess', 'ptyprocess', 'pexpect.spawnbase', 'pexpect.pty_spawn', 'pexpect.run', 'pexpect', 'IPython.utils._process_common', 'IPython.utils._process_posix', 'IPython.utils.process', 'IPython.utils.decorators', 'IPython.utils.path', 'IPython.utils.data', 'IPython.utils.terminal', 'IPython.core.ultratb', 'IPython.utils._sysinfo', 'IPython.utils.sysinfo', 'IPython.core.crashhandler', 'IPython.utils.importstring', 'IPython.paths', 'IPython.core.profiledir', 'IPython.core.application', 'IPython.terminal', 'IPython.core.compilerop', 'IPython.core.error', 'IPython.utils.text', 'IPython.core.magic_arguments', 'getopt', 'IPython.core.display', 'IPython.core.page', 'IPython.lib.security', 'IPython.lib', 'IPython.lib.pretty', 'IPython.utils.openpy', 'IPython.utils.dir2', 'IPython.utils.wildcard', 'IPython.core.oinspect', 'IPython.core.inputtransformer2', 'decorator', 'IPython.core.magic', 'runpy', 'IPython.core.autocall', 'IPython.core.macro', 'IPython.core.splitinput', 'IPython.core.prefilter', 'IPython.core.alias', 'IPython.core.builtin_trap', 'backcall.backcall', 'backcall', 'IPython.core.events', 'IPython.core.displayhook', 'IPython.core.displaypub', 'IPython.core.extensions', 'IPython.utils.sentinel', 'IPython.core.formatters', '_sqlite3', 'sqlite3.dbapi2', 'sqlite3', 'IPython.core.history', 'IPython.core.logger', 'IPython.core.payload', 'IPython.core.usage', 'IPython.lib.display', 'IPython.display', 'IPython.utils.capture', 'IPython.utils.io', 'IPython.core.hooks', 'IPython.utils.strdispatch', 'IPython.utils.syspathcontext', 'IPython.utils.tempdir', 'IPython.utils.contexts', 'IPython.core.async_helpers', 'IPython.core.interactiveshell', 'concurrent', 'concurrent.futures._base', 'concurrent.futures', 'asyncio.constants', 'asyncio.format_helpers', 'asyncio.base_futures', 'asyncio.log', 'asyncio.coroutines', '_contextvars', 'contextvars', 'asyncio.exceptions', 'asyncio.base_tasks', '_asyncio', 'asyncio.events', 'asyncio.futures', 'asyncio.protocols', 'asyncio.transports', 'asyncio.sslproto', 'asyncio.locks', 'asyncio.tasks', 'asyncio.staggered', 'asyncio.trsock', 'asyncio.base_events', 'asyncio.runners', 'asyncio.queues', 'asyncio.streams', 'asyncio.subprocess', 'asyncio.base_subprocess', 'asyncio.selector_events', 'asyncio.unix_events', 'asyncio', 'prompt_toolkit.application.current', 'prompt_toolkit.eventloop.utils', 'prompt_toolkit.eventloop.async_generator', 'wcwidth.table_wide', 'wcwidth.table_zero', 'wcwidth.unicode_versions', 'wcwidth.wcwidth', 'wcwidth', 'prompt_toolkit.utils', 'prompt_toolkit.eventloop.inputhook', 'prompt_toolkit.eventloop', 'prompt_toolkit.application.run_in_terminal', 'prompt_toolkit.selection', 'prompt_toolkit.clipboard.base', 'prompt_toolkit.clipboard.in_memory', 'prompt_toolkit.clipboard', 'prompt_toolkit.cache', 'prompt_toolkit.enums', 'prompt_toolkit.filters.base', 'prompt_toolkit.filters.app', 'prompt_toolkit.filters.cli', 'prompt_toolkit.filters.utils', 'prompt_toolkit.filters', 'prompt_toolkit.document', 'prompt_toolkit.auto_suggest', 'prompt_toolkit.data_structures', 'prompt_toolkit.styles.base', 'prompt_toolkit.styles.named_colors', 'prompt_toolkit.styles.style', 'prompt_toolkit.styles.defaults', 'prompt_toolkit.styles.pygments', 'prompt_toolkit.styles.style_transformation', 'prompt_toolkit.styles', 'prompt_toolkit.output.color_depth', 'prompt_toolkit.output.base', 'prompt_toolkit.output.defaults', 'prompt_toolkit.output', 'prompt_toolkit.output.vt100', 'prompt_toolkit.mouse_events', 'prompt_toolkit.formatted_text.base', 'prompt_toolkit.formatted_text.ansi', 'xml.dom.domreg', 'xml.dom', 'xml.dom.minicompat', 'xml.dom.NodeFilter', 'xml.dom.xmlbuilder', 'xml.dom.minidom', 'prompt_toolkit.formatted_text.html', 'prompt_toolkit.formatted_text.pygments', 'prompt_toolkit.formatted_text.utils', 'prompt_toolkit.formatted_text', 'prompt_toolkit.completion.base', 'prompt_toolkit.completion.deduplicate', 'prompt_toolkit.completion.filesystem', 'prompt_toolkit.completion.word_completer', 'prompt_toolkit.completion.fuzzy_completer', 'prompt_toolkit.completion.nested', 'prompt_toolkit.completion', 'prompt_toolkit.history', 'prompt_toolkit.keys', 'prompt_toolkit.key_binding.key_bindings', 'prompt_toolkit.key_binding.key_processor', 'prompt_toolkit.key_binding', 'prompt_toolkit.key_binding.vi_state', 'prompt_toolkit.search', 'prompt_toolkit.validation', 'prompt_toolkit.buffer', 'prompt_toolkit.input.base', 'prompt_toolkit.input.defaults', 'prompt_toolkit.input', 'prompt_toolkit.input.typeahead', 'prompt_toolkit.key_binding.bindings', 'prompt_toolkit.key_binding.bindings.scroll', 'prompt_toolkit.key_binding.bindings.page_navigation', 'prompt_toolkit.lexers.base', 'prompt_toolkit.lexers.pygments', 'prompt_toolkit.lexers', 'prompt_toolkit.layout.utils', 'prompt_toolkit.layout.processors', 'prompt_toolkit.layout.controls', 'prompt_toolkit.layout.dimension', 'prompt_toolkit.layout.margins', 'prompt_toolkit.layout.mouse_handlers', 'prompt_toolkit.layout.screen', 'prompt_toolkit.layout.containers', 'prompt_toolkit.layout.layout', 'prompt_toolkit.layout.menus', 'prompt_toolkit.layout.scrollable_pane', 'prompt_toolkit.layout', 'prompt_toolkit.key_binding.bindings.completion', 'prompt_toolkit.key_binding.bindings.named_commands', 'prompt_toolkit.key_binding.bindings.basic', 'prompt_toolkit.key_binding.bindings.cpr', 'prompt_toolkit.key_binding.bindings.emacs', 'prompt_toolkit.key_binding.bindings.mouse', 'prompt_toolkit.input.ansi_escape_sequences', 'prompt_toolkit.input.vt100_parser', 'prompt_toolkit.key_binding.digraphs', 'prompt_toolkit.key_binding.bindings.vi', 'prompt_toolkit.key_binding.defaults', 'prompt_toolkit.key_binding.emacs_state', 'prompt_toolkit.layout.dummy', 'prompt_toolkit.renderer', 'prompt_toolkit.application.application', 'prompt_toolkit.application.dummy', 'prompt_toolkit.application', 'prompt_toolkit.key_binding.bindings.focus', 'prompt_toolkit.widgets.toolbars', 'prompt_toolkit.widgets.base', 'prompt_toolkit.widgets.dialogs', 'prompt_toolkit.widgets.menus', 'prompt_toolkit.widgets', 'prompt_toolkit.shortcuts.dialogs', 'prompt_toolkit.shortcuts.progress_bar.formatters', 'prompt_toolkit.shortcuts.progress_bar.base', 'prompt_toolkit.shortcuts.progress_bar', 'prompt_toolkit.key_binding.bindings.auto_suggest', 'prompt_toolkit.key_binding.bindings.open_in_editor', 'prompt_toolkit.shortcuts.prompt', 'prompt_toolkit.shortcuts.utils', 'prompt_toolkit.shortcuts', 'prompt_toolkit', 'prompt_toolkit.patch_stdout', 'IPython.core.latex_symbols', 'IPython.utils.generics', 'parso._compatibility', 'parso.utils', 'parso.tree', 'parso.python', 'parso.python.token', 'parso.python.tokenize', 'parso.pgen2.grammar_parser', 'parso.pgen2.generator', 'parso.pgen2', 'parso.parser', 'parso.python.prefix', 'parso.python.tree', 'parso.python.parser', 'parso.python.diff', 'parso.cache', 'parso.normalizer', 'parso.python.errors', 'parso.python.pep8', 'parso.file_io', 'parso.grammar', 'parso', 'jedi.file_io', 'jedi._compatibility', 'jedi.parser_utils', 'jedi.debug', 'jedi.settings', 'jedi.cache', 'jedi.inference.cache', 'jedi.inference.helpers', 'jedi.inference.utils', 'jedi.inference.base_value', 'jedi.common', 'jedi.inference.sys_path', 'jedi.inference.recursion', 'jedi.inference.flow_analysis', 'jedi.inference.lazy_value', 'jedi.inference.docstrings', 'jedi.plugins', 'jedi.inference.names', 'jedi.inference.filters', 'jedi.inference.compiled.getattr_static', 'jedi.inference.compiled.access', 'jedi.inference.signature', 'jedi.inference.context', 'jedi.inference.compiled.value', 'jedi.inference.compiled', 'jedi.inference.analysis', 'jedi.inference.gradual', 'jedi.inference.value.module', 'jedi.inference.value.dynamic_arrays', 'jedi.inference.value.iterable', 'jedi.inference.arguments', 'jedi.inference.parser_cache', 'jedi.inference.gradual.generics', 'jedi.inference.value.function', 'jedi.inference.value.klass', 'jedi.inference.value.instance', 'jedi.inference.value', 'jedi.inference.gradual.base', 'jedi.inference.gradual.type_var', 'jedi.inference.gradual.typing', 'jedi.inference.gradual.stub_value', 'jedi.inference.gradual.typeshed', 'jedi.inference.imports', 'jedi.inference.param', 'jedi.inference.gradual.annotation', 'jedi.inference.value.decorator', 'jedi.inference.syntax_tree', 'jedi.inference', 'jedi.inference.gradual.conversion', 'jedi.inference.compiled.mixed', 'pydoc_data', 'pydoc_data.topics', 'jedi.api.keywords', 'jedi.api.completion_cache', 'jedi.api.helpers', 'jedi.api.classes', 'jedi.api.interpreter', 'jedi.api.strings', 'jedi.api.file_name', 'jedi.api.completion', 'jedi.inference.compiled.subprocess.functions', 'jedi.api.exceptions', 'jedi.inference.compiled.subprocess', 'jedi.api.environment', 'jedi.inference.references', 'jedi.api.project', 'jedi.api.errors', 'jedi.api.refactoring', 'jedi.api.refactoring.extract', 'jedi.inference.gradual.utils', 'jedi.api', 'jedi.plugins.stdlib', 'jedi.plugins.flask', 'jedi.plugins.pytest', 'jedi.plugins.django', 'jedi.plugins.registry', 'jedi', 'IPython.core.completer', 'IPython.terminal.ptutils', 'IPython.terminal.shortcuts', 'IPython.terminal.debugger', 'IPython.lib.clipboard', 'IPython.terminal.magics', 'IPython.terminal.pt_inputhooks', 'IPython.terminal.prompts', 'IPython.terminal.interactiveshell', 'IPython.core.magics.auto', 'IPython.core.magics.basic', 'IPython.core.magics.code', 'IPython.core.magics.config', 'IPython.core.magics.display', 'timeit', '_lsprof', 'profile', 'cProfile', 'pstats', 'IPython.utils.module_paths', 'IPython.utils.timing', 'IPython.core.magics.execution', 'IPython.core.magics.extension', 'IPython.core.magics.history', 'IPython.core.magics.logging', 'IPython.core.magics.namespace', 'IPython.core.magics.osm', 'IPython.core.magics.packaging', 'IPython.core.pylabtools', 'IPython.core.magics.pylab', 'IPython.lib.backgroundjobs', 'IPython.core.magics.script', 'IPython.core.magics', 'IPython.core.shellapp', 'IPython.extensions', 'IPython.extensions.storemagic', 'IPython.terminal.ipapp', 'IPython.terminal.embed', 'IPython.utils.frame', 'IPython', 'three_merge.merge', 'three_merge', 'spyder.plugins.editor.extensions.closebrackets', 'spyder.plugins.editor.extensions.closequotes', 'spyder.plugins.editor.extensions.docstring', 'spyder.plugins.editor.extensions.manager', 'ctypes.util', 'rtree.finder', 'rtree.exceptions', 'rtree.core', 'rtree.index', 'rtree', 'spyder.utils.snippets', 'spyder.utils.snippets.lexer', 'spyder.utils.snippets.parser', 'spyder.utils.snippets.nodes', 'spyder.utils.snippets.ast', 'spyder.plugins.editor.extensions.snippets', 'spyder.plugins.editor.extensions', 'spyder.plugins.completion.providers', 'spyder.plugins.completion.providers.kite', 'spyder.plugins.completion.providers.kite.widgets.messagebox', 'spyder.api.widgets.status', 'spyder.plugins.completion.providers.kite.utils', 'urllib3.packages.ssl_match_hostname', 'urllib3.packages', 'urllib3.packages.six', 'urllib3.packages.six.moves', 'urllib3.packages.six.moves.http_client', 'urllib3.exceptions', 'urllib3._version', 'urllib3.contrib', 'urllib3.contrib._appengine_environ', 'urllib3.util.wait', 'urllib3.util.connection', 'urllib3.util.request', 'urllib3.util.response', 'urllib3.util.retry', 'urllib3.util.url', 'urllib3.util.ssltransport', 'urllib3.util.ssl_', 'urllib3.util.timeout', 'urllib3.util', 'urllib3.util.proxy', 'urllib3._collections', 'urllib3.connection', 'urllib3.fields', 'urllib3.filepost', 'urllib3.packages.six.moves.urllib', 'urllib3.packages.six.moves.urllib.parse', 'urllib3.request', 'urllib3.response', 'urllib3.util.queue', 'urllib3.connectionpool', 'urllib3.poolmanager', 'urllib3', 'requests.exceptions', 'charset_normalizer.constant', '_multibytecodec', 'charset_normalizer.utils', 'charset_normalizer.md', 'charset_normalizer.models', 'charset_normalizer.assets', 'charset_normalizer.cd', 'charset_normalizer.api', 'charset_normalizer.legacy', 'charset_normalizer.version', 'charset_normalizer', 'requests.__version__', 'importlib.resources', 'certifi.core', 'certifi', 'requests.certs', 'simplejson.errors', 'simplejson.raw_json', 'simplejson.compat', 'simplejson._speedups', 'simplejson.scanner', 'simplejson.decoder', 'simplejson.encoder', 'simplejson', 'http.cookiejar', 'http.cookies', 'requests.compat', 'requests._internal_utils', 'requests.cookies', 'requests.structures', 'requests.utils', 'requests.packages.urllib3.packages.ssl_match_hostname', 'requests.packages.urllib3.packages', 'requests.packages.urllib3.packages.six', 'requests.packages.urllib3.packages.six.moves', 'requests.packages.urllib3.packages.six.moves.http_client', 'requests.packages.urllib3.exceptions', 'requests.packages.urllib3._version', 'requests.packages.urllib3.contrib', 'requests.packages.urllib3.contrib._appengine_environ', 'requests.packages.urllib3.util.wait', 'requests.packages.urllib3.util.connection', 'requests.packages.urllib3.util.request', 'requests.packages.urllib3.util.response', 'requests.packages.urllib3.util.retry', 'requests.packages.urllib3.util.url', 'requests.packages.urllib3.util.ssltransport', 'requests.packages.urllib3.util.ssl_', 'requests.packages.urllib3.util.timeout', 'requests.packages.urllib3.util', 'requests.packages.urllib3.util.proxy', 'requests.packages.urllib3._collections', 'requests.packages.urllib3.connection', 'requests.packages.urllib3.fields', 'requests.packages.urllib3.filepost', 'requests.packages.urllib3.packages.six.moves.urllib', 'requests.packages.urllib3.packages.six.moves.urllib.parse', 'requests.packages.urllib3.request', 'requests.packages.urllib3.response', 'requests.packages.urllib3.util.queue', 'requests.packages.urllib3.connectionpool', 'requests.packages.urllib3.poolmanager', 'requests.packages.urllib3', 'idna.package_data', 'idna.idnadata', 'idna.intranges', 'idna.core', 'idna', 'requests.packages.idna.package_data', 'requests.packages.idna.idnadata', 'requests.packages.idna.intranges', 'requests.packages.idna.core', 'requests.packages.idna', 'requests.packages.chardet', 'requests.packages', 'stringprep', 'encodings.idna', 'requests.hooks', 'requests.auth', 'requests.status_codes', 'requests.models', 'requests.adapters', 'requests.sessions', 'requests.api', 'requests', 'spyder.plugins.completion.providers.kite.utils.status', 'spyder.plugins.completion.providers.kite.utils.install', 'spyder.plugins.completion.providers.kite.widgets.install', 'spyder.plugins.completion.providers.kite.widgets.status', 'spyder.utils.external.pybloom_pyqt.utils', 'spyder.utils.external.pybloom_pyqt.pybloom', 'spyder.utils.external.pybloom_pyqt', 'spyder.plugins.completion.providers.kite.bloomfilter', 'spyder.plugins.completion.providers.kite.parsing', 'spyder.plugins.completion.providers.fallback', 'spyder.plugins.completion.providers.fallback.utils', 'spyder.plugins.completion.providers.fallback.actor', 'spyder.plugins.completion.providers.kite.widgets.calltoaction', 'spyder.plugins.completion.providers.kite.widgets', 'intervaltree.interval', 'intervaltree.node', 'sortedcontainers.sortedlist', 'sortedcontainers.sortedset', 'sortedcontainers.sorteddict', 'sortedcontainers', 'intervaltree.intervaltree', 'intervaltree', 'spyder.plugins.editor.panels.classfunctiondropdown', 'spyder.plugins.editor.panels.utils', 'spyder.plugins.editor.panels.codefolding', 'spyder.plugins.editor.panels.debugger', 'spyder.plugins.editor.panels.edgeline', 'spyder.plugins.editor.panels.indentationguides', 'spyder.plugins.editor.panels.linenumber', 'spyder.plugins.editor.panels.manager', 'spyder.plugins.editor.panels.scrollflag', 'spyder.plugins.editor.panels', 'spyder.plugins.editor.utils.debugger', 'spyder.plugins.editor.utils.kill_ring', 'spyder.plugins.completion.decorators', 'spyder.utils.clipboard_helper', 'spyder.utils.vcs', 'traitlets.log', 'nbformat._version', 'ipython_genutils._version', 'ipython_genutils', 'ipython_genutils.ipstruct', 'nbformat.v1.nbbase', 'nbformat.v1.rwbase', 'nbformat.v1.nbjson', 'nbformat.v1.convert', 'nbformat.v1', 'nbformat.v2.nbbase', 'ipython_genutils.encoding', 'ipython_genutils.py3compat', 'nbformat._compat', 'nbformat.v2.rwbase', 'nbformat.v2.nbjson', 'nbformat.v2.nbxml', 'nbformat.v2.nbpy', 'nbformat.v2.convert', 'nbformat.v2', 'nbformat.v3.nbbase', 'nbformat.v3.rwbase', 'nbformat.v3.nbjson', 'nbformat.v3.nbpy', 'nbformat.v3.convert', 'nbformat.v3', 'nbformat.notebooknode', 'nbformat.corpus', 'nbformat.corpus.words', 'nbformat.v4.nbbase', 'nbformat.v4.rwbase', 'nbformat.v4.nbjson', 'nbformat.v4.convert', 'nbformat.v4', 'nbformat.sentinel', 'ipython_genutils.importstring', 'attr._compat', 'attr._config', 'attr.exceptions', 'attr.setters', 'attr._make', 'attr.converters', 'attr.filters', 'attr.validators', 'attr._cmp', 'attr._funcs', 'attr._version_info', 'attr._next_gen', 'attr', 'jsonschema.compat', 'jsonschema._utils', 'jsonschema.exceptions', 'jsonschema._format', 'pyrsistent._transformations', 'pvectorc', 'pyrsistent._pvector', 'pyrsistent._pmap', 'pyrsistent._pset', 'pyrsistent._pbag', 'pyrsistent._plist', 'pyrsistent._pdeque', 'pyrsistent._checked_types', 'pyrsistent._field_common', 'pyrsistent._precord', 'pyrsistent._pclass', 'pyrsistent._immutable', 'pyrsistent._helpers', 'pyrsistent._toolz', 'pyrsistent', 'jsonschema._types', 'jsonschema._legacy_validators', 'jsonschema._validators', 'jsonschema.validators', 'importlib.metadata', 'jsonschema', 'nbformat.json_compat', 'nbformat.reader', 'nbformat.validator', 'nbformat.converter', 'nbformat', 'nbconvert._version', 'entrypoints', 'nbconvert.exporters.exporter', 'nbconvert.exporters.base', 'jupyter_core.version', 'jupyter_core', 'jupyter_core.paths', 'nbconvert.filters.ansi', '_markupbase', 'html.parser', 'nbconvert.filters.citation', 'nbconvert.utils', 'nbconvert.utils.base', 'nbconvert.filters.datatypefilter', 'nbconvert.filters.highlight', 'nbconvert.utils.version', 'nbconvert.utils.exceptions', 'nbconvert.utils.pandoc', 'nbconvert.filters.latex', 'mistune', 'defusedxml.common', 'defusedxml', 'xml.etree', 'xml.etree.ElementPath', '_elementtree', 'xml.etree.ElementTree', 'defusedxml.ElementTree', 'nbconvert.filters.strings', 'nbconvert.filters.markdown_mistune', 'nbconvert.filters.pandoc', 'nbconvert.filters.markdown', 'nbconvert.filters.metadata', 'ipython_genutils.text', 'nbconvert.filters', 'jupyter_core.utils', 'nbconvert.exporters.templateexporter', 'nbconvert.exporters.html', 'nbconvert.preprocessors.base', 'nbconvert.preprocessors.convertfigures', 'testpath.asserts', 'testpath.env', 'testpath.commands', 'testpath', 'testpath.tempdir', 'nbconvert.utils.io', 'nbconvert.preprocessors.svg2pdf', 'nbconvert.preprocessors.extractoutput', 'nbconvert.preprocessors.latex', 'nbconvert.resources', 'jupyterlab_pygments.style', 'jupyterlab_pygments._version', 'jupyterlab_pygments', 'nbconvert.preprocessors.csshtmlheader', 'nbconvert.preprocessors.highlightmagics', 'nbconvert.preprocessors.clearoutput', 'jupyter_client._version', 'jupyter_client.localinterfaces', 'jupyter_client.utils', 'jupyter_client.connect', 'jupyter_client.launcher', 'jupyter_client.channelsabc', 'jupyter_client.channels', 'jupyter_client.clientabc', 'jupyter_client.client', 'jupyter_client.kernelspec', 'jupyter_client.managerabc', 'jupyter_client.manager', 'jupyter_client.blocking.channels', 'jupyter_client.blocking.client', 'jupyter_client.blocking', 'zmq._future', 'zmq.asyncio', 'jupyter_client.asynchronous.channels', 'jupyter_client.asynchronous.client', 'jupyter_client.asynchronous', 'jupyter_client.multikernelmanager', 'jupyter_client', 'nbclient.exceptions', 'nbclient.util', '_strptime', 'nbclient.jsonutil', 'nbclient.output_widget', 'nbclient.client', 'nbclient._version', 'nbclient', 'nbconvert.preprocessors.execute', 'nbconvert.preprocessors.regexremove', 'nbconvert.preprocessors.tagremove', 'nbconvert.preprocessors.clearmetadata', 'nbconvert.preprocessors.coalescestreams', 'nbconvert.preprocessors', 'nbconvert.exporters.slides', 'pandocfilters', 'nbconvert.filters.filter_links', 'nbconvert.exporters.latex', 'nbconvert.exporters.markdown', 'nbconvert.exporters.asciidoc', 'nbconvert.exporters.notebook', 'nbconvert.exporters.pdf', 'nbconvert.exporters.webpdf', 'nbconvert.exporters.python', 'nbconvert.exporters.rst', 'nbconvert.exporters.script', 'nbconvert.exporters', 'nbconvert.postprocessors.base', 'tornado', 'gzip', 'tornado.speedups', 'tornado.util', 'tornado.escape', '_curses', 'curses', 'tornado.log', 'tornado.concurrent', 'tornado.ioloop', 'tornado.gen', 'tornado.httputil', 'concurrent.futures.thread', 'tornado.netutil', 'tornado.iostream', 'tornado.http1connection', 'tornado.process', 'tornado.tcpserver', 'tornado.httpserver', 'tornado._locale_data', 'tornado.locale', 'tornado.template', 'tornado.routing', 'tornado.web', 'tornado.httpclient', 'nbconvert.postprocessors.serve', 'nbconvert.postprocessors', 'nbconvert.writers.base', 'nbconvert.writers.debug', 'ipython_genutils.path', 'nbconvert.writers.files', 'nbconvert.writers.stdout', 'nbconvert.writers', 'nbconvert', 'spyder.plugins.editor.widgets.codeeditor', 'spyder.plugins.editor.widgets.editorstack_helpers', 'spyder.plugins.editor.widgets.status', 'spyder.plugins.explorer', 'spyder.plugins.explorer.widgets', 'spyder.plugins.explorer.widgets.utils', 'spyder.plugins.explorer.widgets.explorer', 'spyder.widgets.onecolumntree', 'spyder.plugins.outlineexplorer.widgets', 'spyder.plugins.outlineexplorer.main_widget', 'spyder.plugins.outlineexplorer.editor', 'spyder.plugins.editor.widgets.editor', 'spyder.plugins.editor.utils.bookmarks', 'spyder.plugins.run', 'spyder.plugins.run.widgets', 'spyder.plugins.editor.plugin', 'spyder.plugins.explorer.widgets.main_widget', 'spyder.plugins.explorer.widgets.fileassociations', 'spyder.plugins.explorer.confpage', 'spyder.plugins.explorer.plugin', 'spyder.plugins.findinfiles', 'spyder.plugins.findinfiles.widgets', 'spyder.plugins.toolbar', 'spyder.plugins.toolbar.api', 'spyder.plugins.findinfiles.plugin', 'spyder.plugins.help.confpage', 'spyder.plugins.help.utils.sphinxthread', 'spyder.widgets.browser', 'spyder.plugins.help.widgets', 'spyder.plugins.help.plugin', 'spyder.plugins.history', 'spyder.plugins.history.confpage', 'spyder.plugins.history.widgets', 'spyder.plugins.history.plugin', 'spyder.plugins.console.plugin', 'spyder.plugins.ipythonconsole', 'tornado.platform', 'tornado.platform.asyncio', 'zmq.eventloop.ioloop', 'zmq.eventloop', 'zmq.eventloop.zmqstream', 'jupyter_client.threaded', 'qtconsole.util', 'qtconsole.comms', 'qtconsole.kernel_mixins', 'qtconsole.client', 'zmq.ssh.tunnel', 'zmq.ssh', 'spyder.plugins.ipythonconsole.confpage', 'spyder.plugins.ipythonconsole.utils', 'spyder.utils.conda', 'spyder.plugins.ipythonconsole.utils.kernelspec', 'jupyter_client.restarter', 'qtconsole.manager', 'spyder.plugins.ipythonconsole.utils.manager', 'spyder.plugins.ipythonconsole.utils.ssh', 'spyder.plugins.ipythonconsole.utils.style', 'spyder.plugins.ipythonconsole.widgets.control', 'pygments.lexers.shell', 'pygments.lexers.perl', 'IPython.lib.lexers', 'qtconsole.svg', 'qtconsole.base_frontend_mixin', 'qtconsole.bracket_matcher', 'qtconsole.call_tip_widget', 'qtconsole.rich_text', 'qtconsole.ansi_code_processor', 'qtconsole.completion_widget', 'qtconsole.completion_html', 'qtconsole.completion_plain', 'qtconsole.kill_ring', 'qtconsole.console_widget', 'qtconsole.history_console_widget', 'qtconsole.qstringhelpers', 'qtconsole.pygments_highlighter', 'qtconsole.frontend_widget', 'qtconsole.jupyter_widget', 'IPython.lib.latextools', 'qtconsole.rich_jupyter_widget', 'spyder.plugins.ipythonconsole.widgets.debugging', 'cloudpickle.compat', 'typing_extensions', 'cloudpickle.cloudpickle', 'cloudpickle.cloudpickle_fast', 'cloudpickle', 'spyder_kernels.comms.commbase', 'spyder_kernels.comms', 'spyder.plugins.ipythonconsole.widgets.help', 'spyder.plugins.ipythonconsole.widgets.namespacebrowser', 'spyder.plugins.ipythonconsole.widgets.figurebrowser', 'spyder.plugins.ipythonconsole.widgets.kernelconnect', 'spyder.plugins.ipythonconsole.widgets.restartdialog', 'spyder.plugins.ipythonconsole.comms', 'spyder.plugins.ipythonconsole.comms.kernelcomm', 'spyder.plugins.ipythonconsole.widgets.shell', 'spyder.plugins.ipythonconsole.widgets.client', 'spyder.plugins.ipythonconsole.widgets', 'spyder.plugins.ipythonconsole.plugin', 'spyder.plugins.layout', 'spyder.plugins.layout.api', 'spyder.plugins.layout.layouts', 'spyder.plugins.layout.widgets', 'spyder.plugins.layout.widgets.dialog', 'spyder.plugins.layout.container', 'spyder.plugins.preferences.widgets', 'spyder.plugins.preferences.widgets.configdialog', 'spyder.plugins.preferences.widgets.container', 'spyder.plugins.layout.plugin', 'spyder.plugins.maininterpreter', 'spyder.utils.pyenv', 'spyder.plugins.maininterpreter.confpage', 'spyder.plugins.maininterpreter.widgets', 'spyder.plugins.maininterpreter.widgets.status', 'spyder.plugins.maininterpreter.container', 'spyder.plugins.maininterpreter.plugin', 'spyder.plugins.mainmenu.plugin', 'spyder.plugins.onlinehelp', 'spyder.plugins.onlinehelp.pydoc_patch', 'spyder.plugins.onlinehelp.widgets', 'spyder.plugins.onlinehelp.plugin', 'spyder.plugins.outlineexplorer.plugin', 'spyder.plugins.plots', 'spyder.plugins.plots.widgets', 'spyder.plugins.plots.widgets.figurebrowser', 'spyder.plugins.plots.widgets.main_widget', 'spyder.plugins.plots.plugin', 'packaging.__about__', 'packaging', 'packaging._structures', 'packaging.version', 'spyder.plugins.preferences.plugin', 'spyder.plugins.profiler', 'spyder.plugins.profiler.widgets', 'spyder.plugins.profiler.widgets.main_widget', 'spyder.plugins.profiler.confpage', 'spyder.plugins.profiler.plugin', 'spyder.plugins.projects', 'spyder.plugins.projects.utils', 'spyder.plugins.projects.utils.config', 'spyder.plugins.projects.api', 'watchdog', 'watchdog.utils', 'watchdog.utils.platform', 'watchdog.utils.delayed_queue', 'watchdog.observers.inotify_c', 'watchdog.observers.inotify_buffer', 'watchdog.utils.bricks', 'watchdog.observers.api', 'watchdog.utils.patterns', 'watchdog.events', 'watchdog.observers.inotify', 'watchdog.observers', 'spyder.plugins.projects.utils.watcher', 'spyder.plugins.projects.widgets', 'spyder.plugins.explorer.api', 'spyder.plugins.projects.widgets.projectexplorer', 'spyder.plugins.projects.widgets.main_widget', 'spyder.plugins.projects.widgets.projectdialog', 'spyder.plugins.projects.plugin', 'spyder.plugins.pylint', 'pylint.__pkginfo__', 'pylint', 'toml.tz', 'toml.decoder', 'toml.encoder', 'toml', 'astroid.__pkginfo__', 'wrapt._wrappers', 'wrapt.wrappers', 'wrapt.decorators', 'wrapt.importer', 'wrapt', 'astroid.context', 'lazy_object_proxy.utils_py3', 'lazy_object_proxy.utils', 'lazy_object_proxy.cext', 'lazy_object_proxy._version', 'lazy_object_proxy', 'astroid.util', 'astroid.exceptions', 'astroid.decorators', 'astroid.const', 'astroid.interpreter', 'astroid.as_string', 'astroid.mixins', 'astroid.interpreter._import', 'astroid.interpreter._import.util', 'astroid.interpreter._import.spec', 'distutils.errors', 'distutils.dep_util', 'distutils.debug', 'distutils.log', 'distutils.spawn', 'distutils.util', 'distutils.sysconfig', 'astroid.modutils', 'astroid.transforms', 'astroid.manager', 'astroid.node_classes', 'astroid.interpreter.objectmodel', 'astroid.bases', 'astroid.interpreter.dunder_lookup', 'astroid.scoped_nodes', 'astroid.nodes', 'astroid.raw_building', 'astroid.helpers', 'astroid.arguments', 'astroid.protocols', 'astroid.inference', 'astroid.astroid_manager', 'astroid.brain', 'astroid.brain.helpers', 'typed_ast', 'typed_ast._ast3', 'typed_ast.ast3', 'astroid._ast', 'astroid.rebuilder', 'astroid.builder', 'astroid.inference_tip', 'astroid.brain.__init__', 'astroid.brain.brain_argparse', 'astroid.brain.brain_attrs', 'astroid.brain.brain_boto3', 'astroid.objects', 'astroid.brain.brain_builtin_inference', 'astroid.brain.brain_collections', 'astroid.brain.brain_crypt', 'astroid.brain.brain_curses', 'astroid.brain.brain_dataclasses', 'astroid.brain.brain_dateutil', 'astroid.brain.brain_fstrings', 'astroid.brain.brain_functools', 'astroid.brain.brain_gi', 'astroid.brain.brain_hashlib', 'astroid.brain.brain_http', 'astroid.brain.brain_hypothesis', 'astroid.brain.brain_io', 'astroid.brain.brain_mechanize', 'astroid.brain.brain_multiprocessing', 'astroid.brain.brain_namedtuple_enum', 'astroid.brain.brain_nose', 'astroid.brain.brain_numpy_core_fromnumeric', 'astroid.brain.brain_numpy_utils', 'astroid.brain.brain_numpy_core_function_base', 'astroid.brain.brain_numpy_core_multiarray', 'astroid.brain.brain_numpy_core_numeric', 'astroid.brain.brain_numpy_core_numerictypes', 'astroid.brain.brain_numpy_core_umath', 'astroid.brain.brain_numpy_ndarray', 'astroid.brain.brain_numpy_random_mtrand', 'astroid.brain.brain_pkg_resources', 'astroid.brain.brain_pytest', 'astroid.brain.brain_qt', 'astroid.brain.brain_random', 'astroid.brain.brain_re', 'astroid.brain.brain_responses', 'astroid.brain.brain_scipy_signal', 'astroid.brain.brain_six', 'astroid.brain.brain_sqlalchemy', 'astroid.brain.brain_ssl', 'astroid.brain.brain_subprocess', 'astroid.brain.brain_threading', 'astroid.brain.brain_type', 'astroid.brain.brain_typing', 'astroid.brain.brain_uuid', 'astroid', 'pylint.utils.ast_walker', 'pylint.constants', 'pylint.utils.file_state', 'isort.sorting', 'isort.stdlibs.py27', 'isort.stdlibs.py2', 'isort.stdlibs.py35', 'isort.stdlibs.py36', 'isort.stdlibs.py37', 'isort.stdlibs.py38', 'isort.stdlibs.py39', 'isort.stdlibs.py3', 'isort.stdlibs.all', 'isort.stdlibs', 'dataclasses', 'isort._future', 'isort.profiles', 'isort.exceptions', 'isort.sections', 'isort.comments', 'isort.wrap_modes', 'isort._vendored', 'isort._vendored.toml.tz', 'isort._vendored.toml.decoder', 'isort._vendored.toml.encoder', 'isort._vendored.toml', 'isort.settings', 'isort._version', 'isort.literal', 'isort.format', 'isort.utils', 'isort.place', 'isort.parse', 'isort.wrap', 'isort.identify', 'isort.output', 'isort.core', 'isort.files', 'isort.io', 'isort.api', 'isort', 'pylint.utils.utils', 'pylint.utils', 'pylint.config.man_help_formatter', 'pylint.config.option', 'pylint.config.option_parser', 'pylint.config.option_manager_mixin', 'pylint.config.options_provider_mixin', 'pylint.config.configuration_mixin', 'pylint.config.find_default_config_files', 'pylint.config', 'spyder.plugins.pylint.utils', 'spyder.plugins.pylint.main_widget', 'spyder.plugins.pylint.confpage', 'spyder.plugins.pylint.plugin', 'spyder.plugins.run.confpage', 'spyder.plugins.run.plugin', 'spyder.plugins.shortcuts', 'spyder.plugins.shortcuts.widgets', 'spyder.plugins.shortcuts.widgets.table', 'spyder.plugins.shortcuts.confpage', 'spyder.plugins.shortcuts.widgets.summary', 'spyder.plugins.shortcuts.plugin', 'spyder.plugins.statusbar', 'spyder.plugins.statusbar.confpage', 'spyder.plugins.statusbar.widgets', 'spyder.utils.system', 'spyder.plugins.statusbar.widgets.status', 'spyder.plugins.statusbar.container', 'spyder.plugins.statusbar.plugin', 'spyder.plugins.toolbar.container', 'spyder.plugins.toolbar.plugin', 'spyder.plugins.tours', 'spyder.plugins.application.api', 'spyder.plugins.tours.api', 'spyder.plugins.tours.tours', 'spyder.plugins.tours.widgets', 'spyder.plugins.tours.container', 'spyder.plugins.tours.plugin', 'spyder.plugins.variableexplorer.confpage', 'spyder.plugins.variableexplorer.widgets.namespacebrowser', 'spyder.plugins.variableexplorer.widgets.main_widget', 'spyder.plugins.variableexplorer.plugin', 'spyder.plugins.workingdirectory', 'spyder.plugins.workingdirectory.confpage', 'spyder.plugins.workingdirectory.container', 'spyder.plugins.workingdirectory.plugin', 'spyder.plugins.completion.providers.fallback.provider', 'spyder.plugins.completion.providers.kite.decorators', 'spyder.plugins.completion.providers.kite.providers.document', 'spyder.plugins.completion.providers.kite.providers', 'spyder.plugins.completion.providers.kite.client', 'spyder.plugins.completion.providers.kite.provider', 'netrc', 'spyder.plugins.completion.providers.languageserver', 'spyder.config.lsp', 'spyder.plugins.completion.providers.languageserver.transport', 'spyder.plugins.completion.providers.languageserver.decorators', 'spyder.plugins.completion.providers.languageserver.providers.utils', 'spyder.plugins.completion.providers.languageserver.providers.document', 'spyder.plugins.completion.providers.languageserver.providers.window', 'spyder.plugins.completion.providers.languageserver.providers.workspace', 'spyder.plugins.completion.providers.languageserver.providers.client', 'spyder.plugins.completion.providers.languageserver.providers', 'spyder.plugins.completion.providers.languageserver.client', 'spyder.plugins.completion.providers.languageserver.conftabs.advanced', 'spyder.plugins.completion.providers.languageserver.conftabs.docstring', 'spyder.plugins.completion.providers.languageserver.conftabs.formatting', 'spyder.plugins.completion.providers.languageserver.conftabs.introspection', 'spyder.plugins.completion.providers.languageserver.conftabs.linting', 'spyder.plugins.completion.providers.languageserver.widgets.messagebox', 'spyder.plugins.completion.providers.languageserver.widgets.serversconfig', 'spyder.plugins.completion.providers.languageserver.widgets.status', 'spyder.plugins.completion.providers.languageserver.widgets', 'spyder.plugins.completion.providers.languageserver.conftabs.otherlanguages', 'spyder.plugins.completion.providers.languageserver.conftabs', 'spyder.plugins.completion.providers.languageserver.provider', 'spyder.plugins.completion.providers.snippets', 'spyder.config.snippets', 'spyder.plugins.completion.providers.snippets.trie', 'spyder.plugins.completion.providers.snippets.actor', 'spyder.plugins.completion.providers.snippets.widgets.snippetsconfig', 'spyder.plugins.completion.providers.snippets.widgets', 'spyder.plugins.completion.providers.snippets.conftabs', 'spyder.plugins.completion.providers.snippets.provider', 'rope', 'fractions', 'textdistance.libraries', 'textdistance.utils', 'textdistance.algorithms.base', 'textdistance.algorithms.compression_based', 'textdistance.algorithms.edit_based', 'textdistance.algorithms.phonetic', 'textdistance.algorithms.sequence_based', 'textdistance.algorithms.simple', 'textdistance.algorithms.token_based', 'textdistance.algorithms', 'textdistance', 'cookiecutter', 'numpydoc', 'pluggy._version', 'pluggy._tracing', 'pluggy._result', 'pluggy._callers', 'pluggy._hooks', 'pluggy._manager', 'pluggy', 'pylsp._version', 'pylsp', 'pylsp_black', 'pyls_spyder', 'xdg', '_distutils_hack', '_distutils_hack.override', 'distutils.fancy_getopt', 'distutils.dist', 'distutils.dir_util', 'distutils.file_util', 'distutils.archive_util', 'distutils.cmd', 'distutils.config', 'distutils.extension', 'distutils.core', 'setuptools._deprecation_warning', 'setuptools.version', 'distutils.filelist', 'setuptools.monkey', 'setuptools.extension', 'distutils.command', 'setuptools.extern', 'setuptools._vendor', 'setuptools._vendor.packaging.__about__', 'setuptools._vendor.packaging', 'setuptools.extern.packaging', 'setuptools._vendor.ordered_set', 'setuptools.extern.ordered_set', 'setuptools._vendor.more_itertools.recipes', 'setuptools._vendor.more_itertools.more', 'setuptools._vendor.more_itertools', 'setuptools.extern.more_itertools', 'distutils.command.bdist', 'setuptools.command', 'setuptools.windows_support', 'setuptools.extern.packaging._structures', 'setuptools.extern.packaging._typing', 'setuptools.extern.packaging.version', 'setuptools.extern.packaging._compat', 'setuptools.extern.packaging.utils', 'setuptools.extern.packaging.specifiers', 'setuptools.config', 'setuptools.dist', 'setuptools.py34compat', 'setuptools._imp', 'setuptools.depends', 'distutils.ccompiler', 'setuptools.msvc', 'setuptools', 'matplotlib', 'matplotlib._api.deprecation', 'matplotlib._api', 'matplotlib._c_internal_utils', 'matplotlib.cbook', 'matplotlib.docstring', 'PIL._version', 'PIL', 'PIL.ImageMode', 'PIL.TiffTags', 'PIL._binary', 'PIL._util', 'PIL._imaging', 'cffi.lock', 'cffi.error', 'cffi.model', 'cffi.api', 'cffi', 'PIL.Image', 'matplotlib._animation_data', 'matplotlib.animation', 'PIL.ImageChops', 'PIL.ImageFile', 'PIL.GimpGradientFile', 'PIL.GimpPaletteFile', 'PIL.ImageColor', 'PIL.PaletteFile', 'PIL.ImagePalette', 'PIL.ImageSequence', 'PIL.PngImagePlugin', 'matplotlib._path', 'matplotlib.bezier', 'matplotlib.path', 'matplotlib.transforms', 'matplotlib.ticker', 'matplotlib.scale', 'matplotlib._color_data', 'matplotlib.colors', 'pyparsing', 'matplotlib.fontconfig_pattern', 'matplotlib._enums', 'cycler', 'matplotlib.rcsetup', 'matplotlib._version', 'matplotlib.ft2font', 'kiwisolver', 'dateutil.rrule', 'matplotlib.units', 'matplotlib.dates']

Versions

Dependencies


# Mandatory:
atomicwrites >=1.2.0          :  1.4.0 (OK)
chardet >=2.0.0               :  4.0.0 (OK)
cloudpickle >=0.5.0           :  2.0.0 (OK)
cookiecutter >=1.6.0          :  1.7.3 (OK)
diff_match_patch >=20181111   :  20200713 (OK)
intervaltree >=3.0.2          :  3.1.0 (OK)
IPython >=7.6.0               :  7.27.0 (OK)
jedi >=0.17.2;<0.19.0         :  0.17.2 (OK)
jsonschema >=3.2.0            :  3.2.0 (OK)
keyring >=17.0.0              :  23.2.1 (OK)
nbconvert >=4.0               :  6.1.0 (OK)
numpydoc >=0.6.0              :  1.1.0 (OK)
parso >=0.7.0;<0.9.0          :  0.7.0 (OK)
pexpect >=4.4.0               :  4.6.0 (OK)
pickleshare >=0.4             :  0.7.5 (OK)
psutil >=5.3                  :  5.5.1 (OK)
pygments >=2.0                :  2.9.0 (OK)
pylint >=2.5.0;<2.10.0        :  2.9.6 (OK)
pyls_spyder >=0.4.0           :  0.4.0 (OK)
pylsp >=1.2.2;<1.3.0          :  1.2.2 (OK)
pylsp_black >=1.0.0           :  None (OK)
qdarkstyle =3.0.2             :  3.0.2 (OK)
qstylizer >=0.1.10            :  0.2.1 (OK)
qtawesome >=1.0.2             :  1.0.3 (OK)
qtconsole >=5.1.0             :  5.1.1 (OK)
qtpy >=1.5.0                  :  1.9.0 (OK)
rtree >=0.9.7                 :  0.9.7 (OK)
setuptools >=49.6.0           :  58.0.4 (OK)
sphinx >=0.6.6                :  4.2.0 (OK)
spyder_kernels >=2.1.1;<2.2.0 :  2.1.1 (OK)
textdistance >=4.2.0          :  4.2.1 (OK)
three_merge >=0.1.1           :  0.1.1 (OK)
watchdog >=0.10.3             :  1.0.2 (OK)
xdg >=0.26                    :  None (NOK)
zmq >=17                      :  22.2.1 (OK)

# Optional:
cython >=0.21                 :  None (OK)
matplotlib >=2.0.0            :  3.4.3 (OK)
numpy >=1.7                   :  1.21.2 (OK)
pandas >=1.1.1                :  1.3.3 (OK)
scipy >=0.17.0                :  1.7.1 (OK)
sympy >=0.7.3                 :  1.8 (OK)
ccordoba12 commented 3 years ago

Hey @sphh, thanks for reporting. This is an installation issue, not a problem with Spyder. And as you probably know, we only support Anaconda installations, not custom ones, as in your case.

So it's up to you to figure this one out. My only recommendation is to stop installing packages with sudo pip3 in your system Python (which is a recipe for disaster since you'll most likely break it) and use instead a virtualenv.

sphh commented 3 years ago

Well, it might be an installation issue … but xdg can be loaded from any other package, so I wonder, if it is not a problem with its detection after all.

I did a little test. I added two lines to /usr/local/bin/spyder:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from spyder.app.start import main
from xdg.DesktopEntry import DesktopEntry        # ADDED
print('###################', DesktopEntry)       # ADDED
if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

(I used these lines, because that's what spyder/utils/programs.py uses – that is the only import of xdg my recursive grep could find.)

When I now start spyder from the terminal, I get:

$ spyder
################### <class 'xdg.DesktopEntry.DesktopEntry'>

so spyder can find xdg. Which let's me believe, that the detection algorithm might have a problem …

To be absolutely sure, I added the same lines to the main() function and xdg can still be loaded!

Can you point me where (and how) a package is detected? Maybe I can track down the problem? Thanks.

ccordoba12 commented 3 years ago

spyder/dependencies.py

sphh commented 3 years ago

TL;DR I tracked it down, that spyder could not find the version string for xdg in the get_module_version() function in utils/programs.py.

Further investigation revealed, that the __init__.py file was missing from pyxdg's installation directory. Un- and reinstalling pyxdg solved this problem.

The problem was, that I installed xdg and pyxdg. Both packages install into the same directory (xdg), which is Not A Good Idea. I then de-installed xdg, which removed all its files from this directory – including pyxdg's __init__.py file. Who would have thought!

So this was not an installation issue, but a de-installation issue :confounded:

(Thanks for your help.)

ccordoba12 commented 3 years ago

No prob, glad you were able to figure it out.

sphh commented 3 years ago

Just for reference: The corresponding bug reports can be found here: