Saturday, October 29, 2022

[SOLVED] xdg-open: no method available for opening ./directory

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)