Distributing Ruby/Python desktop apps

Is there any way besides Shoes to develop and distribute cross-platform GUI desktop applications written in Ruby?

I come to believe that general bugginess of _why's applications is exceptionally crippling in case of Shoes, and anything more complex than a two-button form is a pain to maintain.

RubyGTK, wxRuby, etc seem to be promising, but they do not solve the issue of distributing an app in a way that doesn't require Ruby pre-installed on users' computers — and libraries like ruby2exe seem to be horribly out-of-date and incomplete.

Generally — what is the current fad?

BTW: if there is a really easy solution to this in Python, I may consider redoing the stuff I'm up to in Python.

Asked by: Julia701 | Posted: 06-12-2021

Answer 1

I don't know about ruby2exe, but py2exe works perfeclty fine. Even with librairies like wxWidgets. Edit: you don't even have to ask the user to install wxWidgets, it's bundled with the app (same goes for py2app)

I use it for my very small project here.

For the Mac crowd, py2app works fine too with wxWidgets.

Answered by: Lana143 | Posted: 07-01-2022

Answer 2

For Ruby, the One-Click Ruby Application Builder (OCRA) is emerging as the successor to RubyScript2Exe.

Ocra works with both Ruby 1.8.6 and 1.9.1, and with wxRuby. Supports LZMA compression for relatively compact executables.

Answered by: Tara691 | Posted: 07-01-2022

Answer 3

I don't know about Ruby, but the standard for Python is py2exe to create Windows binaries. For me, the cross-plattform pyinstaller has worked well, once. For your GUI, TkInter is the standard. A lot of people like wxPython. All those are fairly actively developed. I suggest playing a little bit around with these options to decide whether Python is the better choice.

Answered by: Tara123 | Posted: 07-01-2022

Answer 4

The state of affairs is pretty bad. The most reliable method at present is probably to use JRuby. I know that's probably not the answer you want to hear, but, as you say, ruby2exe is unreliable, and Shoes is a long way off (and isn't even intended to be a full-scale application). Personally, I dislike forcing users to install GTK or Qt or wxWidgets, but the JVM is fairly ubiquitous.

Answered by: Adrian527 | Posted: 07-01-2022

Answer 5

Depending on how far you development is, Shoes is pretty good. Its basically it's own Ruby Distribution. It may be a bit hidden (in the files menu), but it allows you to package your application for all 3 platforms without having that Shoes startup screen.

The rendering engine behind it is Cairo.

Answered by: Julian793 | Posted: 07-01-2022

Answer 6

I don't think anyone really answered his question.

As for me, I use VB to do Shell() calls to Ocra compiled Ruby scripts. It works pretty well and allows me to create apps that run in all modern OS.

Linux testing is done by using Wine to run and ensuring that I use a pre .NET version of VB for the .exe compilation.

Answered by: Michelle470 | Posted: 07-01-2022

Answer 7

I've read about (but not used) Seattlerb's Wilson, which describes itself as a pure x86 assembler, but it doesn't sound like it'd be cross-platform or GUI.

Answered by: Julian275 | Posted: 07-01-2022

Similar questions

Distributing my Python scripts as JAR files with Jython?

I have been a Python programmer for almost two years, and I am used to writing small scripts to automate some repetitive tasks I had to do at the office. Now, apparently my colleagues noticed this, and they want those scripts too. Some of them have Macs, some Windows; I made these on windows. I investigated the possibility of using py2exe or even py2app to make natives of my script, but they never satisfied me...

python - Solution for distributing MANY simple network tasks?

Closed. This question does not meet Stack Overflow guid...

python - Distributing an executable zip file with __main__.py, how to access extra data?

This question already has answers here:

argparse - Distributing a Python library (single file)

For my project I would be using the argparse library. My question is, how do I distribute it with my project. I am asking this because of the technicalities and legalities involved. Do I just: Put the argparse.py file along with my project. That is, in the tar file for my project. Create a package for it for my distro? Tell the user to install it himself?

windows - Distributing minimal python installation with application

My company is working on an application that is half Qt/C++ for the editor interface and half Django (via QtWebKit browser control) for the runtime. What we want to do is distribute a minimal python installation with our application. For instance, our Mac app bundle would ideally be structured something like this: TheApp.app/ Contents/ MacOS/ TheApp Resources/ Minim...

Distributing python modules for another architecture

I'm wondering how I can create a 32-bit binary with my 64bit cx_freeze. I've looked at the homepage and I can't find a setting to tell it what architecture to build for. I'm running 32bit(otherwise PyQt won't work) Python 2.6, so the dependencies should already be 32bit, on 64bit Kubuntu 10.10.

Distributing Programs Written in Python

This question already has answers here:

python - Options for creating forms, distributing them and collecting info

What options do I have for creating a form intended for collecting data from a potentially big amount of people? (Preferably in Python) I am looking for options other than HTML forms. PDF Forms seem to be an option, but my tendency until now has been to avoid them. Standard desktop app seems to be the way to go, but it means a new application has to be installed on each computer that wants to fill t...

ubuntu - Distributing a Python Software for Linux

I am writing my first software in Python for Ubuntu (or Debian based Linux). I am looking for a good advise on the best way to distribute my software. The easist alternative that I can think of at the moment is to archive the python code into *.tar.gz, and let user execute the main python script as an executable to run the software. I realize that this may not be the best approach. I looked at the Debian ...

Distributing list items to variables in python

I'm fairly new to Python and I'm looking for a way to distribute items in a list into individual variables. The point of this is to display individual items as text objects in Blender. Here's what I have so far, but I know there's gotta be a more efficient way to go about doing this. file = open('lyrics.conf') data = file.read() file.close() b = data.split('/') v = len(b) if v >= 1: v1 = b[0] if v &gt...

Still can't find your answer? Check out these communities...

PySlackers | Full Stack Python | NHS Python | Pythonist Cafe | Hacker Earth | Discord Python