Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Options for packaging Python software

Arnolxu
 Share

I'm making a simple programming language in Python, and I want to make it installable without cloning the repository, running Makefile etc. The first option that comes to mind is PIP, but I'm sure it would be weird to distribute a programming language with another programming language's package manager. I thinked about packaging it for Linux distros' package managers, but there are too many distros with different package manager. Then, I noticed that I could just create a binary with PyInstaller and put it to GitHub Releases page. But, I don't know if it's a good way to do it. Quote from PyInstaller Manual:

Quote

PyInstaller bundles a Python application and all its dependencies into a single package.

I think this would be too much bloat for a simple application. Are there any other options for packaging Python software?

Link to comment
Share on other sites

Link to post
Share on other sites

You said yourself this is a "simple" programming language, why worry about whether it would be "weird" to use the python package manager? In fact, if it's just a hobby project I wouldn't worry at all about requiring people to clone it from github if they want to try it. I'd assume anyone interested in this sort of thing would be at least passingly familiar with the workings of git and makefiles.

11 minutes ago, Arnolxu said:

Are there any other options for packaging Python software?

I wish, but sadly no as far as I know. Pyinstaller isn't the only tool that does this but the alternatives still do pretty much the same thing, meaning the bundle the interpreter and the app's dependencies in the installer.

Don't ask to ask, just ask... please 🤨

sudo chmod -R 000 /*

What is scaling and how does it work? Asus PB287Q unboxing! Console alternatives :D Watch Netflix with Kodi on Arch Linux Sharing folders over the internet using SSH Beginner's Guide To LTT (by iamdarkyoshi)

Sauron'stm Product Scores:

Spoiler

Just a list of my personal scores for some products, in no particular order, with brief comments. I just got the idea to do them so they aren't many for now :)

Don't take these as complete reviews or final truths - they are just my personal impressions on products I may or may not have used, summed up in a couple of sentences and a rough score. All scores take into account the unit's price and time of release, heavily so, therefore don't expect absolute performance to be reflected here.

 

-Lenovo Thinkpad X220 - [8/10]

Spoiler

A durable and reliable machine that is relatively lightweight, has all the hardware it needs to never feel sluggish and has a great IPS matte screen. Downsides are mostly due to its age, most notably the screen resolution of 1366x768 and usb 2.0 ports.

 

-Apple Macbook (2015) - [Garbage -/10]

Spoiler

From my perspective, this product has no redeeming factors given its price and the competition. It is underpowered, overpriced, impractical due to its single port and is made redundant even by Apple's own iPad pro line.

 

-OnePlus X - [7/10]

Spoiler

A good phone for the price. It does everything I (and most people) need without being sluggish and has no particularly bad flaws. The lack of recent software updates and relatively barebones feature kit (most notably the lack of 5GHz wifi, biometric sensors and backlight for the capacitive buttons) prevent it from being exceptional.

 

-Microsoft Surface Book 2 - [Garbage - -/10]

Spoiler

Overpriced and rushed, offers nothing notable compared to the competition, doesn't come with an adequate charger despite the premium price. Worse than the Macbook for not even offering the small plus sides of having macOS. Buy a Razer Blade if you want high performance in a (relatively) light package.

 

-Intel Core i7 2600/k - [9/10]

Spoiler

Quite possibly Intel's best product launch ever. It had all the bleeding edge features of the time, it came with a very significant performance improvement over its predecessor and it had a soldered heatspreader, allowing for efficient cooling and great overclocking. Even the "locked" version could be overclocked through the multiplier within (quite reasonable) limits.

 

-Apple iPad Pro - [5/10]

Spoiler

A pretty good product, sunk by its price (plus the extra cost of the physical keyboard and the pencil). Buy it if you don't mind the Apple tax and are looking for a very light office machine with an excellent digitizer. Particularly good for rich students. Bad for cheap tinkerers like myself.

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

10 minutes ago, Sauron said:

You said yourself this is a "simple" programming language, why worry about whether it would be "weird" to use the python package manager? In fact, if it's just a hobby project I wouldn't worry at all about requiring people to clone it from github if they want to try it. I'd assume anyone interested in this sort of thing would be at least passingly familiar with the workings of git and makefiles.

I wish, but sadly no as far as I know. Pyinstaller isn't the only tool that does this but the alternatives still do pretty much the same thing, meaning the bundle the interpreter and the app's dependencies in the installer.

I wanted it to look like a big project, then I guess I'll just create a binary with PyInstaller. Thanks for help.

Link to comment
Share on other sites

Link to post
Share on other sites

Runtimes are normally downloaded through software package managers such as brew and winget -- but your language presumably requires python.

 

You can actually do a lot with python wheels, and this is what I recommend for a professional looking result. If there's compiling that needs to be done you can do that with GitHub Actions.

Link to comment
Share on other sites

Link to post
Share on other sites

Just do universal windows apps and publish on windows store if you want the regular people to easily install your apps.

 

on Linux, it is whatever really. There are so many ways to install packages. You can make installing as simple as moving the script to the /opt dir or as complicated as you want with the auto tools.

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

  • 3 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share


×