spyder-ide / spyder

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

Variable explorer doesn't work for Numpy arrays when Numpy is not installed #22784

Open johnh865 opened 3 weeks ago

johnh865 commented 3 weeks ago

Description

What steps will reproduce the problem?

When trying to open an array, or if I click a value of a numpy data type, an error pops up "Spyder was unable to retrieve the value of this variable from the console. The error message was:

An unknown error occurred. Check the console because its contents could have been printed there.

Note: please don't report this problem on Github, there's nothing to do about it. "

Although the message claims there's nothing to do about it, I'm pretty sure for older versions of numpy, Spyder had no problem displaying those arrays.

Versions

Dependencies

# Mandatory:
aiohttp >=3.9.3                  :  3.10.10 (OK)
asyncssh >=2.14.0,<3.0.0         :  2.17.0 (OK)
atomicwrites >=1.2.0             :  1.4.1 (OK)
chardet >=2.0.0                  :  5.2.0 (OK)
cloudpickle >=0.5.0              :  3.1.0 (OK)
cookiecutter >=1.6.0             :  2.6.0 (OK)
diff_match_patch >=20181111      :  20241021 (OK)
github >=2.3.0                   :  2.4.0 (OK)
importlib_metadata >=4.6.0       :  8.5.0 (OK)
intervaltree >=3.0.2             :  3.1.0 (OK)
IPython >=8.13.0,<9.0.0,!=8.17.1 :  8.29.0 (OK)
jedi >=0.17.2,<0.20.0            :  0.19.1 (OK)
jellyfish >=0.7                  :  1.1.0 (OK)
jsonschema >=3.2.0               :  4.23.0 (OK)
keyring >=17.0.0                 :  25.4.1 (OK)
nbconvert >=4.0                  :  7.16.4 (OK)
numpydoc >=0.6.0                 :  1.8.0 (OK)
parso >=0.7.0,<0.9.0             :  0.8.4 (OK)
pexpect >=4.4.0                  :  4.9.0 (OK)
pickleshare >=0.4                :  0.7.5 (OK)
psutil >=5.3                     :  6.1.0 (OK)
pygments >=2.0                   :  2.18.0 (OK)
pylint >=3.1,<4                  :  3.3.1 (OK)
pylint_venv >=3.0.2              :  3.0.3 (OK)
pyls_spyder >=0.4.0              :  0.4.0 (OK)
pylsp >=1.12.0,<1.13.0           :  1.12.0 (OK)
pylsp_black >=2.0.0,<3.0.0       :  2.0.0 (OK)
pyuca >=1.2                      :  1.2 (OK)
qdarkstyle >=3.2.0,<3.3.0        :  3.2.3 (OK)
qstylizer >=0.2.2                :  0.2.3 (OK)
qtawesome >=1.3.1,<1.4.0         :  1.3.1 (OK)
qtconsole >=5.6.0,<5.7.0         :  5.6.0 (OK)
qtpy >=2.4.0                     :  2.4.1 (OK)
rtree >=0.9.7                    :  1.3.0 (OK)
setuptools >=49.6.0              :  65.5.0 (OK)
sphinx >=0.6.6                   :  8.1.3 (OK)
spyder_kernels >=3.0.0,<3.1.0    :  3.0.0 (OK)
superqt >=0.6.2,<1.0.0           :  0.6.7 (OK)
textdistance >=4.2.0             :  4.6.2 (OK)
three_merge >=0.1.1              :  0.1.1 (OK)
watchdog >=0.10.3                :  5.0.3 (OK)
yarl >=1.9.4                     :  1.16.0 (OK)
zmq >=24.0.0                     :  26.2.0 (OK)

# Optional:
cython >=0.21                    :  None (NOK)
matplotlib >=3.0.0               :  None (NOK)
numpy >=1.7                      :  None (NOK)
pandas >=1.1.1                   :  None (NOK)
scipy >=0.17.0                   :  None (NOK)
sympy >=0.7.3                    :  None (NOK)
dalthviz commented 3 weeks ago

Hi @johnh865 thank you for the report! I think this could be related with https://github.com/spyder-ide/spyder/issues/20671 Are you by any chance using a custom interpreter? One of the reasons this message could appear is if you are using a custom interpreter and the env from where Spyder was launched have incompatible versions of the package you are using or also if you don't have the package installed over the env Spyder was launched.

Let us know if the info above helps!

ccordoba12 commented 3 weeks ago

The cause for this is very simple @johnh865: you don't have Numpy installed alongside Spyder, as can be seen in the list of dependencies you posted:

numpy >=1.7                      :  None (NOK)

And Spyder needs Numpy to manipulate and display arrays in the Variable Explorer. We list it as an optional dependency to not make installing Spyder too heavy.

However, the error message for this problem can be certainly improved and we'll try to do it in a later version.