On Sat, 21 Nov 2020 at 09:30, Ronald Oussoren via Python-ideas <python-ideas@python.org> wrote:
On 20 Nov 2020, at 16:42, Ricky Teachey <ricky@teachey.org> wrote:
I was reading the pyinstaller thread and had this idea but didn't want to hijack.
Maybe a wild idea, and very possible totally impractical or hopelessly complex, but: could the existing pypi infrastructure be leveraged into a set of platform-specific app stores? Maybe maybe we could make it as simple as a single line in a pyproject.toml file.
Imagine if all the end user does is install the store, and clicks the link to the project app. The store takes care of the rest. The developer marks their package as an installable program to be published to the store, optionally specifying things like specific platforms if needed. All the project website does for users to install is provide a url to their app in the store.
Very very rough idea of how it might work: a store app API would provide an installation GUI if desired, and the store would build the environment needed for installing the package and dependencies. Once the specified environment is built, pip would take care of installing the package as usual.
If this is an awful idea feel free to just say so. I have given it no deep thought and do not have the expertise to even think through what would be needed to create such a thing.
In some sense PyPI already is such a store, if you don’t mind launching applications from the command line.
That said, using PyPI in this way is not necessarily useful even ignoring platforms where side-loading is frowned upon or even impossible. As a user of applications I don’t really care in what language an application is written in, I don’t wan to look in the Python App Store, or the C# App Store, I just wan to use application A.
Maybe a good solution could be if it was easy to put a Python-based application into something like the Microsoft Store. It would be useful if there was a library that could easily produce the appropriate format for that (I don't know if one already exists) with all dependencies bundled. -- Oscar