Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Open system console via SSH so I can install packages #23156

Open
5 of 10 tasks
joooeey opened this issue Dec 3, 2024 · 1 comment
Open
5 of 10 tasks

Comments

@joooeey
Copy link

joooeey commented Dec 3, 2024

Issue Report Checklist

  • Searched the issues page for similar reports
  • Read the relevant sections of the Spyder Troubleshooting Guide and followed its advice
  • Reproduced the issue after updating with conda update spyder (or pip, if not using Anaconda) This step failed (see Can't update Spyder from with Spyder 6.0.1 #23157 ) but the menus look no different on another machine with Spyder 6.0.2 . So I assume the feature isn't yet implemented in 6.0.2 .
  • Could not reproduce inside jupyter qtconsole (if console-related)
  • Tried basic troubleshooting (if a bug/error)
    • Restarted Spyder
    • Reset preferences with spyder --reset
    • Reinstalled the latest version of Anaconda
    • Tried the other applicable steps from the Troubleshooting Guide
  • Completed the Problem Description, Steps to Reproduce and Version sections below

Problem Description

I'd like to run scripts with dependencies beyond the standard library modules on a remote server. I want to do that with the new remote connection feature that doesn't require shuffling around a .json file.

Currently I don't see a simple way to install packages on the remote server. There is a workaround however:

import subprocess
import sys

new_packages = ["parse"]  # Will install the package parse from PyPI.
subprocess.check_output([sys.executable, "-m", "pip", "install"] + new_packages)

Running this in the remote console installs the package on the remote machine.

What steps reproduce the problem?

  1. Configure a remote server for ssh access (I used a machine with Linux Mint).
  2. If not present, set up a remote connection to the server with Tools/Manage remote connections.../New connection. I used username and password access.
  3. Open a remote console with Consoles/New console in remote server/New console in server
  4. Enter import parse in the remote console (bottom right). Error: ModuleNotFoundError: No module named 'parse'
  5. I couldn't figure out a convenient way to install the parse package on the remote machine (but the workaround above works).

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

I'd like to get a console where I can install packages on the remote machine with commands like mamba install parse or pip install -r requirements.txt.

There is no menu option to access such a system console on the remote machine.

Versions

  • Spyder version: 6.0.2
  • Python version: 3.12.7 64-bit
  • Qt version: 5.15.8
  • PyQt version: 5.15.9
  • Operating System name/version: Linux 5.15.0-122-generic (x86_64) a.k.a. Linux Mint

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.0.0 (OK)
cookiecutter >=1.6.0             :  2.6.0 (OK)
diff_match_patch >=20181111      :  20230430 (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.28.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.0.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              :  75.1.0 (OK)
sphinx >=0.6.6                   :  8.1.0 (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)
xdg >=0.26                       :  0.28 (OK)
yarl >=1.9.4                     :  1.14.0 (OK)
zmq >=24.0.0                     :  26.2.0 (OK)

# Optional:
cython >=0.21                    :  None (NOK)
matplotlib >=3.0.0               :  3.9.2 (OK)
numpy >=1.7                      :  2.1.2 (OK)
pandas >=1.1.1                   :  2.2.2 (OK)
scipy >=0.17.0                   :  1.14.1 (OK)
sympy >=0.7.3                    :  None (NOK)
@joooeey
Copy link
Author

joooeey commented Dec 4, 2024

There's another workaround that's a lot more convenient than installing packages from within Python:

$ ssh <user>@192.168.<x>.<x>
$ mamba activate ~/.local/share/mamba/envs/spyder-kernel
$ mamba install parse

The path mentioned here is already shown in the menu of the remote console at ≡/Show sys.path contents

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant