spyder-ide / spyder

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

Spyder uses global kernel regardless of venv in Ubuntu #22689

Open eafpres opened 4 days ago

eafpres commented 4 days ago

Problem Description

When running Spyder in different venvs under Ubuntu 20.04, the same kernel is used regardless of the venv.

What steps reproduce the problem?

  1. Install Spyder 6.x in Ubuntu 20.04 using Spyder-6.0.0a4-Linux-x86_64.sh
  2. Create a new venv e.g. python -m venv test_env
  3. Activate venv e.g. source ~/test_env/bin/activate
  4. Install Spyder in the new venv
  5. Run Spyder, use Tools>Preferences>Python interpreter and set kernel to the new venv, e.g. /home/user/test_env/bin/python
  6. Open new terminal, using base (default) env, run Spyder e.g. Spyder --new_instance
  7. Check Tools>Preferences>Python interpreter;
  8. It shows the other venv

What is the expected output? What do you see instead?

Ideally Spyder would manage kernels by venv, not globally

Versions

Dependencies

# Mandatory:
atomicwrites >=1.2.0              :  1.4.1 (OK)
chardet >=2.0.0                   :  5.2.0 (OK)
cloudpickle >=0.5.0               :  3.0.0 (OK)
cookiecutter >=1.6.0              :  2.5.0 (OK)
diff_match_patch >=20181111       :  20230430 (OK)
intervaltree >=3.0.2              :  3.1.0 (OK)
IPython >=8.13.0,<9.0.0,!=8.17.1  :  8.21.0 (OK)
jedi >=0.17.2,<0.20.0             :  0.19.1 (OK)
jellyfish >=0.7                   :  1.0.3 (OK)
jsonschema >=3.2.0                :  4.21.1 (OK)
keyring >=17.0.0                  :  24.3.0 (OK)
nbconvert >=4.0                   :  7.16.0 (OK)
numpydoc >=0.6.0                  :  1.6.0 (OK)
parso >=0.7.0,<0.9.0              :  0.8.3 (OK)
pexpect >=4.4.0                   :  4.9.0 (OK)
pickleshare >=0.4                 :  0.7.5 (OK)
psutil >=5.3                      :  5.9.8 (OK)
pygments >=2.0                    :  2.17.2 (OK)
pylint >=2.5.0,<3.1               :  3.0.3 (OK)
pylint_venv >=3.0.2               :  3.0.3 (OK)
pyls_spyder >=0.4.0               :  0.4.0 (OK)
pylsp >=1.10.0,<1.11.0            :  1.10.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.2 (OK)
qtawesome >=1.3.0                 :  1.3.0 (OK)
qtconsole >=5.5.1,<5.6.0          :  5.5.1 (OK)
qtpy >=2.4.0                      :  2.4.1 (OK)
rtree >=0.9.7                     :  1.2.0 (OK)
setuptools >=49.6.0               :  69.0.3 (OK)
sphinx >=0.6.6                    :  7.2.6 (OK)
spyder_kernels >=3.0.0b4,<3.0.0b5 :  3.0.0b4 (OK)
superqt >=0.6.1,<1.0.0            :  0.6.1 (OK)
textdistance >=4.2.0              :  4.5.0 (OK)
three_merge >=0.1.1               :  0.1.1 (OK)
watchdog >=0.10.3                 :  4.0.0 (OK)
xdg >=0.26                        :  0.28 (OK)
zmq >=22.1.0                      :  25.1.2 (OK)

# Optional:
cython >=0.21                     :  3.0.8 (OK)
matplotlib >=3.0.0                :  3.8.2 (OK)
numpy >=1.7                       :  1.26.4 (OK)
pandas >=1.1.1                    :  2.2.0 (OK)
scipy >=0.17.0                    :  1.12.0 (OK)
sympy >=0.7.3                     :  1.12 (OK)
ccordoba12 commented 4 hours ago

Hey @eafpres, thanks for reporting. I don't understand very well what's happening in your case, but it seems that you're expecting each Spyder instance to have its own set of preferences.

However, that's not the case: all Spyder instances use the same preferences, which are save in ~/.config/spyder-py3 on Linux. If you want to use another directory to save your preferences, you can do that by launching Spyder like this:

spyder --conf-dir ~/path/to/another/dir

Let us know if that's helpful for you.