'Running non-python scripts remotely using PyCharm
I am using PyCharm to do remote deployment and execution of python on an SSH server. However, I would also like to be able to run other files directly in the same way. For example, I would like to "run" a "job.run" script through sbatch to submit it to a HPC server.
I can see PyCharm runs the following type of command for python
ssh://username@server:22/home/username/anaconda3/bin/python -u /home/username/project1/main.py
I would like to have another file called "job.run" that runs as follows
ssh://username@server:22/home/username/bin/sbatch /home/username/project1/job.run
This feels like it should be simple to do, however I cannot find any options that allow me to do so.
Solution 1:[1]
One option is to configure a specific interpreter as explained here where you make sure to set Interpreter: /usr/bin/bash
in the dialog window of step 6. Then you should set that interpreter for the project with the job.run
file following this doc. You might need two distinct projects with different profiles/interpreter for that ; one with the Python code, another with the Slurm submission scripts.
Another option, to keep everything inside the same project, could be to wrap the submission of jobs in Python code, either using
os.system("sbatch job.run")
or the more versatile subprocess package- the PySlurm package
- the Slurm Rest API, following the steps explained in this answer
Solution 2:[2]
I think you could try using External (Remote) Tools
option. It allows you to create context actions that you can then trigger from Project
file view in PyCharm or assign to keymap.
Take a look at this documentation section: https://www.jetbrains.com/help/pycharm/configuring-third-party-tools.html#remote-ext-tools.
This should hook to your existing SSH server configuration that you are using for executing Python scripts.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | damienfrancois |
Solution 2 | sol25 |