Why not tell people to “simply” use pyenv, poetry or anaconda

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • Nuitka

    Nuitka is a Python compiler written in Python. It's fully compatible with Python 2.6, 2.7, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, and 3.11. You feed it your Python app, it does a lot of clever things, and spits out an executable or extension module.

  • That's more of cultural problem in the Python community.

    If I provide an end user software to my client written an Python (so not a backend, not a lib...), I will compile it with nuitka (https://github.com/Nuitka/Nuitka) and hide the stack trace (https://www.bitecode.dev/p/why-and-how-to-hide-the-python-st...) to provide a stand alone executable.

    This means the users don't have to know it's made with Python or install anything, and it just works.

    However, Python is not like Go or Rust, and providing such an installer requires more than work, so a huge part of the user base (which have a lot of non professional coders) don't have the skill, time or resources to do it.

    And few people make the promotion of it.

    I should write an article on that because really, nobody wants to setup python just to use a tool.

  • mise

    dev tools, env vars, task runner

  • You want something that manages different versions of Python itself. pyenv is a popular option for doing this, but I'm partial to rtx which is largely language agnostic and also handles Python virtual environments in a very elegant way.

    https://github.com/jdxcode/rtx

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • Pytorch

    Tensors and Dynamic neural networks in Python with strong GPU acceleration

  • rye

    a Hassle-Free Python Experience

  • The short term solution is "relieving the packaging pain" link in the article.

    The long term solution is described in the "What a solution could look like?" section of https://www.bitecode.dev/p/why-is-the-python-installation-pr...

    The community is buzzing with attempts to fix those issues this year, so I’m hopping those posts will become obsolete one day.

    Flask’s author is attempting something interesting with rye: https://github.com/mitsuhiko/rye

    Trio’s author is drafting a spec for the equivalent of wheels, but for the whole python interpreter: https://github.com/njsmith/posy/blob/main/pybi/README.md

    Not advocating to use them right now, but the fact is bootstrapping Python is finally acknowledged as one major cause of packaging issues and a priority to solve.

  • posy

  • The short term solution is "relieving the packaging pain" link in the article.

    The long term solution is described in the "What a solution could look like?" section of https://www.bitecode.dev/p/why-is-the-python-installation-pr...

    The community is buzzing with attempts to fix those issues this year, so I’m hopping those posts will become obsolete one day.

    Flask’s author is attempting something interesting with rye: https://github.com/mitsuhiko/rye

    Trio’s author is drafting a spec for the equivalent of wheels, but for the whole python interpreter: https://github.com/njsmith/posy/blob/main/pybi/README.md

    Not advocating to use them right now, but the fact is bootstrapping Python is finally acknowledged as one major cause of packaging issues and a priority to solve.

  • pyenv-win

    pyenv for Windows. pyenv is a simple python version management tool. It lets you easily switch between multiple versions of Python. It's simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well.

  • I've had success using pyenv on Mac and Linux. If I had to use Windows, I'd probably try pyenv-win [0].

    I have run into issues trying to use packages that were available for one platform but not another, due to native code, etc. Most of the time I could find a pure Python alternative, but not always. This can lead to using containers, which adds complexity, which is a drawback because one of the advantages of Python to me is the simplicity (assuming you have something like pyenv).

    I've used Poetry in the past, but it added enough complexity/overhead that I probably won't again.

    I've had some success putting a line in a README for an internal tool that other devs can use to pip install from a Git repo. Again, assuming you have pyenv or the like, starting from a clean venv and pip install from Git seems to be pretty straightforward.

    [0] - https://github.com/pyenv-win/pyenv-win

  • PyInstaller

    Freeze (package) Python programs into stand-alone executables

  • You are right. I think I've misremembered the module name - it was uwsgi, not uvicorn.

    This is a github issue where I discussed my original issue with PyInstaller devs - the dev explained the situation very well: https://github.com/pyinstaller/pyinstaller/issues/6362

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts