Issue
I try to open a directory using xdg-open
in Ubuntu. It works if I run xdg-open ./dir
in terminal.
I have a Flask web app that opens directories using xdg-open
in some situations. When I start the app from terminal in development mode (By running $ flask run
) it works and opens all directories without any problems. But when i start it in production mode using Nginx & Gunicorn it returns:
xdg-open: no method available for opening ./test
The result is exactly same as the situation that I run xdg-open in non-graphical terminal(alt+ctrl+f1
)
What should I do?
Solution
Finally I found the solution
Just I must set the $DISPLAY
env variable to :0
and then run the command.
s.th like this:
env = dict(os.environ)
env['DISPLAY'] = ":0"
subprocess.Popen('xdg-open ./some_folder',env=env,shell=True)
Answered By - mwxgaf Answer Checked By - Cary Denson (WPSolving Admin)