Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python: running pygame through Bash on Ubuntu on Windows

I've recently installed and have been playing around with Bash on Ubuntu on Windows. For the most part it works great. I'm trying to run a pygame script through BUW but it doesn't render the graphics in a popup window. Instead, it seems to be contained in the bash window and looks like this:

enter image description here

Is this a lost cause for pygame? Is there anything I can do here to make it run?

like image 205
Null Salad Avatar asked Jul 25 '17 08:07

Null Salad


3 Answers

Pygame runs on SDL. The SDL version shipped with ubuntu requires* an xserver to run. Find out how to run an xserver with bash on ubuntu on windows.

This question might provide those steps: How to use X Windows with Emacs on Windows 10 Bash?

*It requires something to render to, raw framebuffers and,as you noticed, libcaca, which renders bitmaps to ascii art, are also fine. Rendering to X is the one you probably want, though.

like image 76
Lanting Avatar answered Nov 20 '22 14:11

Lanting


From the FAQ on the page you linked to:

Can I run ALL Linux apps in WSL?

No! WSL is a tool aimed at enabling users who need them to run Bash and core Linux command-line tools on Windows.

WSL does not aim to support GUI desktops or applications (e.g. Gnome, KDE, etc.)

like image 21
Dunes Avatar answered Nov 20 '22 15:11

Dunes


Update from 2021: With WSL2 I followed these steps to run PyGame

  1. Download and install Xlaunch. Run it with all default settings except check "Disable access control"

  2. Add the following code to the top of the python file:

import os
os.environ["SDL_VIDEODRIVER"]="x11"
like image 1
Jonah Kornberg Avatar answered Nov 20 '22 15:11

Jonah Kornberg