John
John

Reputation: 2147

how can I enable x-11 forwarding in pycharm? when connecting to vagrant or a remote ssh?

I am using pycharm in windows but the python backend need to be running on unix so I host the python app/code in ubuntu with vagrant, however I need to do some plotting as well, is there a way I can enable matplotlab plotting in pycharm with vagrant? thanks

Upvotes: 11

Views: 7826

Answers (2)

Vicente Rocha
Vicente Rocha

Reputation: 357

In case anyone stumbles upon the same issue.. There are several ways for you to enable X11 through PyCharm.

The solution for me was to create a terminal session using the -Y flag (or -X), e.g.:

ssh -X user@ip

or

ssh -Y user@ip

The -Y worked for me as it enables trusted X11 forwarding, which are not subjected to X11 Security extension controls (ssh man page)

You also need to export DISPLAY variable just like user138180 said

For me the matplotlib backend that worked was "tkagg". See matplotlib faq for more info.


My remote machine is a centos 7. My local machine is running Manjaro.

A workaround to having the terminal session opened is to follow what Tarun said here.


As an example, (thanks, user138180), you could use this code to test if it works:

import matplotlib 
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt 
plt.interactive(False)

plt.hist(np.random.randn(100))
plt.show()

Upvotes: 3

Dmitriy
Dmitriy

Reputation: 116

Try to set DISPLAY environment variable in PyCharm run configuration like this:

DISPLAY=localhost:10.0

I got my display value from vagrant ssh connection

vagrant@vagrant:$ echo $DISPLAY
localhost:10.0

Upvotes: 8

Related Questions