Can't upload helpers for remote interpreter PyCharm2020.1

I am connecting to a remote computer using SSH and I managed to do that properly thanks to the UI: the connection is successful. I have a problem though: 

Couldn't upload helpers for remote interpreter: File C:\Users\<USERNAME>\AppData\Local\JetBrains\PyCharm2020.1\remote_sources\1290613867\1718042274\.pycharm_helpers\ is not a file or directory

The helpers are not uploading to the remote host, but I'm not sure what to do. Any help would be appreciated. 

PS: I can run programs and code completion is working, but the fact that the error shows up every time is annoying

Comment actions Permalink


Please try:

1. Delete ~/.pycharm_helpers from the remote host

2. Do **File | Invalidate Caches / Restart... | Invalidate and Restart**

3. Delete and recreate the project interpreter

Then, run your script, make sure the new ~/.pycharm_helpers directory appears on the remote host. Does the issue still reproduce afterwards?

Comment actions Permalink

Seems to be working, but only after I mapped ~/.pycharm_helpers and the remote code in a tmp directory, different from my user one. Is there a way to make sure it works also for my user directory or could there be an accessing problem to this latter directory?  

Comment actions Permalink

Default path for helpers is ~/.pycharm_helpers , which is inside your user's home. Does it not being uploaded there? In this case, this is most likely a permission issue. You should see "permission denied" error if you look in the logs.

I suggest reviewing permissions for your user. You can also try uploading them manually via SSH to test the permission. Or you can just copy them from tmp to ~

Comment actions Permalink

When I was leaving the deafult settings it was creating the folder in ~/, but when I then tried to run the program it would give the error aforementioned. Only after I mapped the helpers directory into the tmp folder I was error-free. 

Comment actions Permalink

In my experience this always happens, when you use the PyCharm inbuild functionality to install new libraries (e.g. NumPy on the remote machine). It does not break if I install the libraries via ssh console using pip. I can imagine that the PyCharm Helper (I think that's this Package managing thing called) breaks somehow the permissions or some stuff.

Comment actions Permalink

I have a similar problem and have done the cache invalidation and it doesn't help. This happens on all conda virtual environments on a SSH remote host. I use PyCharm 2020.2 on Windows. Here is a snipit of the log:


2020-09-14 18:21:45,327 [ 249669] INFO - plugins.remotesdk.RemoteUpload - Uploading helpers to /home/ryan/.pycharm_helpers
2020-09-14 18:21:45,328 [ 249670] INFO - - Will request `sftp` subsystem
2020-09-14 18:21:45,641 [ 249983] WARN - om.intellij.ssh.impl.sshj.sshj - File C:\Users\rshef\AppData\Local\JetBrains\PyCharm2020.2\remote_sources\-481361872\1427634325\.pycharm_helpers\ C:\Users\rshef\AppData\Local\JetBrains\PyCharm2020.2\remote_sources\-481361872\1427634325\.pycharm_helpers\ is not a file or directory C:\Users\rshef\AppData\Local\JetBrains\PyCharm2020.2\remote_sources\-481361872\1427634325\.pycharm_helpers\ is not a file or directory
at net.schmizz.sshj.sftp.SFTPFileTransfer$Uploader.upload(
at net.schmizz.sshj.sftp.SFTPFileTransfer$Uploader.access$100(
at net.schmizz.sshj.sftp.SFTPFileTransfer.upload(
at net.schmizz.sshj.sftp.SFTPClient.put(
at com.intellij.ssh.impl.sshj.channels.SshjSftpChannel.uploadFileOrDir(SshjSftpChannel.kt:33)
at com.intellij.ssh.channels.SftpChannel$DefaultImpls.uploadFileOrDir(SftpChannel.kt:22)
at com.intellij.ssh.impl.sshj.channels.SshjSftpChannel.uploadFileOrDir(SshjSftpChannel.kt:19)
at com.jetbrains.plugins.remotesdk.RemoteUpload.uploadPerFile(RemoteUpload.kt:148)
at com.jetbrains.plugins.remotesdk.RemoteUpload.doUploadFilesToRemote(RemoteUpload.kt:125)
at com.jetbrains.plugins.remotesdk.RemoteUpload.access$doUploadFilesToRemote(RemoteUpload.kt:31)
at com.jetbrains.plugins.remotesdk.RemoteUpload$process$
at com.jetbrains.plugins.remotesdk.RemoteUploadKt$createTask$
at com.jetbrains.plugins.remotesdk.RemoteUpload$upload$
at java.base/java.util.concurrent.CompletableFuture$
at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(
at java.base/java.util.concurrent.ForkJoinTask.doExec(
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(
at java.base/java.util.concurrent.ForkJoinPool.scan(
at java.base/java.util.concurrent.ForkJoinPool.runWorker(
at java.base/
2020-09-14 18:21:45,642 [ 249984] INFO - .diagnostic.PerformanceWatcher - Helpers uploaded took 35ms; general responsiveness: ok; EDT responsiveness: ok

Comment actions Permalink

This whole helper uploading is extremely annoying and I still would like to see JetBrains stopping that completely. It is an unneccessary burden and there a already a lot of complaints about it since years (!). 

Comment actions Permalink

Hi, exact same problem as the OP and Ryan. Can run python files but console keeps trying to connect, but nothing happens. Using version 2021.1.1. Any help would be much appreciated. Andrey Resler

Comment actions Permalink

I have just spent an hour screwing around with that and realized that the solution is to choose SSH  when configuring the Python Interpreter (takes no more than 10 clicks to get there...). By default, mine was set to Deployment configuration. Seriously, guys, can't this be made a bit more obvious?


Please sign in to leave a comment.