The issue I'm facing right now:
- I deploy Python code on a remote host via SSH
- the scripts are passed some arguments and must be ran by a specific user
- the PyCharm run/debug configuration that I create connects through SSH via a different user (can't connect with the user that actually runs the scripts)
- I want to remote debug this code via PyCharm...I managed to do all configuration, I just get permission errors.
Are there any ways on how I can run/debug the scripts as a specific user (like sudo su - user)?
I've read about specifying some Python Interpeter options in PyCharm's remote/debug configuration, but didn't manage to get a working solution.
If you want an easy and more flexible way to get into the PyCharm debugger, rather than necessarily having a one-click "play" button in PyCharm, you can use the debug server functionality. I've used this in situations where running some Python code isn't as simple as running
python ...
.See the Remote debug with a Python Debug Server docs for more details, but here's a rough summary of how it works:
/Applications/PyCharm.app/Contents/debug-eggs
)Edit configurations...
, hit the+
button, choosePython remote debug
.Local host name
to your laptop's IP addressport
to any free port that you can use on your laptop (e.g.8888
)import
andpydevd.settrace(...)
statements into your code, specifically where you want your code to "hit a breakpoint". This is basically the PyCharm equivalent ofimport pdb; pdb.set_trace()
. Make sure the changed code is sync'ed to your server.I have this (finally) working with ssh RemoteForward open, like so:
Then start the script in this ssh session. The python script host must connect to localhost:5678 and of course your local pycharm debugger must listen to 5678 (or whatever port you choose)