Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

information about binary wheel builds #66

Open
IaroslavR opened this issue Apr 30, 2020 · 3 comments
Open

information about binary wheel builds #66

IaroslavR opened this issue Apr 30, 2020 · 3 comments

Comments

@IaroslavR
Copy link

As I understand you plan to update your series, may be it will be good if you'll mention about the auditwheel project. Many interesting details can be found here

@cjolowicz
Copy link
Owner

Thank you, this looks great! Don't know why I missed it the first time round.

@wanderrful
Copy link

wanderrful commented Jul 20, 2020

Piggybacking on this, do you have any guidance for distribution of releases of our Poetry project? Particularly, for distribution as an executable or app file?

You did a great job covering CD for distribution via PyPI, but not all consumers of our app will have Python installed or understand how to use pip install myapp without guidance.

Poetry seems to want us to call scripts via poetry run, but all distribution tools I've seen like py2exe , cx_freeze, or pyinstaller want us to provide a script beforehand. Should we create an entry point layer of indirection to act as a substitute for not being able to directly call our scripts via poetry so that consumers of our Click CLI app can still run certain commands (e.g. myapp run console -l pl)?

I'd imagine that since we are able to export our compiled wheel binaries with Poetry that it shouldn't be that annoying of a process to convert this binary into an executable?

@cjolowicz
Copy link
Owner

cjolowicz commented Jul 21, 2020

@wanderrful Don't hesitate to open your own issue :)

I'll just give you some pointers to interesting projects for distributing Python applications:

At the risk of oversimplifying, this list is ordered roughly from developer-friendly to end-user-friendly. pipx is amazing if your users are developers who don't mind installing Python and then using the command-line to get an application from PyPI. shiv bundles your package with all its dependencies, as a sort of zipapp on steroids, and pyoxidizer produces binaries that include the Python interpreter itself. briefcase can produce native binaries for a number of desktop and mobile environments.

Please note that poetry run is not intended for end users at all, because it requires a Poetry environment installed from a source tree to work. Poetry allows you to build a wheel and upload it to PyPI, and that's where its job ends. (Although Poetry 1.1 will have a bundle command with additional deployment options.)

When deploying services into a production environment, Docker is a great option. Check out Itamar Turner Trauring's series on Production-ready Docker packaging. As for Poetry and Docker, my SO answer may be useful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants