pyenv-virtualenv VS llvm-mingw

Compare pyenv-virtualenv vs llvm-mingw and see what are their differences.

pyenv-virtualenv

a pyenv plugin to manage virtualenv (a.k.a. python-virtualenv) (by pyenv)

llvm-mingw

An LLVM/Clang/LLD based mingw-w64 toolchain (by mstorsjo)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
pyenv-virtualenv llvm-mingw
31 15
6,035 1,634
1.8% -
5.7 8.9
20 days ago 6 days ago
Shell C
MIT License GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

pyenv-virtualenv

Posts with mentions or reviews of pyenv-virtualenv. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-14.
  • Integrating GPT in Your Project: Create an API for Anything Using LangChain and FastAPI
    2 projects | dev.to | 14 Jan 2024
    First of all, install the Python virtual environment from these links: 1 and 2. I developed my GPT-based API in Python version 3.8.18. Pick any Python versions >= 3.7.
  • Can't Get Any LoRA Training Repos To Work
    3 projects | /r/SDtechsupport | 28 Mar 2023
  • shell personalization- my custom setup
    3 projects | dev.to | 18 Dec 2022
    git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
  • Pyenv, poetry and other rascals - modern Python dependency and version management
    1 project | dev.to | 30 Nov 2022
    Install pyenv-virtualenv plugin from repository (in never versions it's included in pyenv.run script I think)
  • Ask HN: Programming Without a Build System?
    15 projects | news.ycombinator.com | 12 Nov 2022
    > trying to build a lifeboat for Twitter, Python works, but then modules require builds that break.

    > Alternatively, any good resources for the above?

    There are many, _unbelievably many_ writeups and tools for Python building and packaging. Some of them are really neat! But paralysis of choice is real. So is the reality that many of the new/fully integrated/cutting edge tools, however superior they may be, just won't get long term support to catch on and stay relevant.

    When getting started with Python, I very personally like to choose from a few simple options (others are likely to pipe up with their own, and that's great; mine aren't The One Right Way, just some fairly cold/mainstream takes).

    1. First pick what stack you'll be using to develop and test software. In Python this is sadly often going to be different from the stack you'll use to deploy/run it in production, but here we are. There are two sub-choices to be made here:

    1.a. How will you be running the _python interpreter_ in dev/test? "I just want to use the Python that came with my laptop" is fine to a point, but breaks down a lot sooner than folks expect (again, the reasons for this are variously reasonable and stupid, but here we are). Personally, I like pyenv (https://github.com/pyenv/pyenv) here. It's a simple tool that builds interpreters on your system and provides shell aliases to adjust pathing so they can optionally be used. At the opposite extreme from pyenv, some folks choose Python-in-Docker here (pros: reproducible, makes deployment environments very consistent with dev; cons: IDE/quick build-and-run automations get tricker). There are some other tools that wrap/automate the same stuff that pyenv does.

    1.b. How will you be isolating your project's dependencies? "I want to install dependencies globally" breaks down (or worse, breaks your laptop!) pretty quickly, yes it's a bummer. There are three options here: if you really eschew automations/wrappers/thick tools in general, you can do this yourself (i.e. via "pip install --local", optionally in a dedicated development workstation user account); you can use venv (https://docs.python.org/3/library/venv.html stdlib version of virtualenv, yes the names suck and confusing, here we are etc. etc.), which is widely standardized upon and manually use "pip install" while inside your virtualenv, and you can optionally integrate your virtualenv with pyenv so "inside your virtualenv" is easy to achieve via pyenv-virtualenv (https://github.com/pyenv/pyenv-virtualenv); or you can say "hell with this, I want maximum convenience via a wrapper that manages my whole project" and use Poetry (https://python-poetry.org/). There's no right point on that spectrum, it's up to you to decide where you fall on the "I want an integrated experience and to start prototyping quickly" versus "I want to reduce customizations/wrappers/tooling layers" spectrum.

    2. Then, pick how you'll be developing said software: what frameworks or tools you'll be using. A Twitter lifeboat sounds like a webapp, so you'll likely want a web framework. Python has a spectrum of those of varying "thickness"/batteries-included-ness. At the minimum of thickness are tools like Flask (https://flask.palletsprojects.com/en/2.2.x/) and Sanic (like Flask, but with a bias towards performance at the cost of using async and some newer Python programming techniques which tend, in Python, to be harder than the traditional Flask approach: https://sanic.dev). At the maximum of thickness are things like Django/Pyramid. With the minimally-thick frameworks you'll end up plugging together other libraries for things like e.g. database access or web content serving/templating, with the maximally-thick approach that is included but opinionated. Same as before: no right answers, but be clear on the axis (or axes) along with you're choosing.

    3. Choose how you'll be deploying/running the software, maybe after prototyping for awhile. This isn't "lock yourself into a cloud provider/hosting platform", but rather a choice about what tools you use with the hosting environment. Docker is pretty uncontentious here, if you want a generic way to run your Python app on many environments. So is "configure Linux instances to run equivalent Python/package versions to your dev/test environment". If you choose the latter, be aware that (and this is very important/often not discussed) many tools that the Python community suggests for local development or testing are very unsuitable for managing production environments (e.g. a tool based around shell state mutation is going to be extremely inconvenient to productionize).

    Yeah, that's a lot of choices, but in general there are some pretty obvious/uncontentious paths there. Pyenv-for-interpreters/Poetry-for-packaging-and-project-management/Flask-for-web-serving/Docker-for-production is not going to surprise anyone or break any assumptions. Docker/raw-venv/Django is going to be just as easy to Google your way through.

    Again, no one obvious right way (ha!) but plenty of valid options!

    Not sure if that's what you were after. If you want a "just show me how to get started"-type writeup rather than an overview on the choices involved, I'm sure folks here or some quick googling will turn up many!

  • Pyenv and Virtualenvs Quick-start
    3 projects | dev.to | 28 Oct 2022
    For this, I will use pyenv and the pyenv-virtualenv tools.
  • I can I roll python3 back to pre 3.11 in F37 ?
    2 projects | /r/Fedora | 26 Oct 2022
    I would suggest using pyenv and the pyenv-virtualenv plugin to manage various python versions and virtualenvs
  • Will updating Python break my existing Django app?
    2 projects | /r/django | 8 Oct 2022
    To help, check out pyenv and pyenv-virtualenv (or pyenv with Poetry if you want the new hotness). You essentially can install multiple python versions and create a virtualenv that uses a specific python version. So you could have `myapp-3.7` and `myapp-3.10` each isolated with their own package versions, etc.
  • Created a CLI to manage virtual envs with pyenv-win
    4 projects | /r/Python | 28 Sep 2022
    Recently moved to Windows from Linux and was looking for a replacement for pyenv which I was using to manage multiple versions of Python. Found pyenv-win but it was missing the pyenv-virtualenv plugin which can be used to create virtualenvs for different Python versions. Frustrated with the lack of options, I decided to create my own CLI called pyenv-win-venv to do the same thing. I created it only for my personal use but later decided to open source it so it has some of the basic features of pyenv-virtualenv and I hope it is useful to other users of pyenv-win.
  • 9 shell tools for productivity
    11 projects | dev.to | 4 Sep 2022
    Pyenv lets you install different versions of python on your system simultaneously, without breaking a thing. You can switch between any of them in one command. You can also bind a specific version to a directory, which will activate every time you enter it. There is an extension that adds support for virtual environments.

llvm-mingw

Posts with mentions or reviews of llvm-mingw. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-14.
  • Crystal 1.11.0 Is Released
    6 projects | news.ycombinator.com | 14 Jan 2024
  • Ask HN: Who is using the D language and likes/doesn't like it? Why?
    6 projects | news.ycombinator.com | 23 Sep 2023
    > Doing Python with a C plugin, or just compiling a command line C/C++ isn't really systems programming.

    I care about a minimal set of tools in order to compile C/C++ programs. thats offered by:

    https://github.com/mstorsjo/llvm-mingw/releases

    and also MSYS2, and even the Zig C compiler. all less than 200 MB. meanwhile Visual Studio installing about 10 GB worth. If Microsoft can offer a similar experience then I am interested.

  • Clang compiler for Windows 10 gives this error
    1 project | /r/C_Programming | 2 Jul 2023
    Pick a community-supported Clang-based Mingw-w64 distribution.
  • My 24 year old HP Jornada can do things your modern iPhone still can't do
    5 projects | news.ycombinator.com | 15 Jun 2023
    > AFAIK there is no native GCC compiler for Windows

    might want to check your facts before spouting nonsense. there is, and has been for many, many years. more than one in fact:

    https://github.com/mstorsjo/llvm-mingw

    https://packages.msys2.org/base/mingw-w64-gcc

  • Release candidate: Godot 4.0 RC 5 (Yes, the pace is picking up!)
    3 projects | /r/godot | 24 Feb 2023
    MinGW is notoriously slow to link compared to MSVC, unless using llvm-mingw with the link=lld SCons option. If using MSVC, make sure to use 2022 or at least 2019 if possible – recent linkers tend to be faster than older versions.
  • Toolchain for cross-compiling DLL to windows/arm64
    1 project | /r/golang | 22 Nov 2022
    GCC doesn't support windows/arm64, but you should be able to do it with LLVM. I've never gotten it to work myself, but should be able to supply a cross toolchain: https://github.com/mstorsjo/llvm-mingw
  • Ask HN: Programming Without a Build System?
    15 projects | news.ycombinator.com | 12 Nov 2022
    Visual Studio is a bloated mess, and has been for many years. Its at least 10 times larger than other options, such as MinGW-LLVM:

    https://github.com/mstorsjo/llvm-mingw

  • Because cross-compiling binaries for Windows is easier than building natively
    15 projects | news.ycombinator.com | 18 Jun 2022
    Sadly Qt ships MinGW 8.1 which is positively ancient (released in 2018). If you're starting a new project (which you likely are if you are installing an IDE aha) there's no reason not to go for more recent compilers - msys2 has GCC12 (https://packages.msys2.org/package/mingw-w64-x86_64-gcc) and Clang 14 (https://packages.msys2.org/package/mingw-w64-x86_64-clang) which just work better overall, have much more complete C++20 support, have less bugs, better compile times (especially clang with the various PCH options that appeared in the last few versions), better static analysis, etc.

    Personally I use https://github.com/mstorsjo/llvm-mingw's releases directly which does not require MSYS but that's because I recompile all my libraries with specific options - if the MSYS libs as they are built are good for you there's no reason not to use them.

  • Some sanity for C and C++ development on Windows
    3 projects | news.ycombinator.com | 1 Jan 2022
    you can grab it here: https://github.com/mstorsjo/llvm-mingw/releases/tag/20211002
  • The Atrocities of COM win32 headers
    9 projects | news.ycombinator.com | 18 Dec 2021
    Clang (and lld) do support native TLS, and mingw-w64 does have the things that are needed. I think binutils also might have what's needed too, but AFAIK the thing that's missing is support for it in GCC.

    Actually, (upstream) Clang defaults to native TLS instead of emulated TLS. In MSYS2, Clang is overridden to use emulated TLS by deafult to interoperate better with GCC built code and libstdc++ though.

    The toolchain I maintain, https://github.com/mstorsjo/llvm-mingw, defaults to native TLS throughout.

What are some alternatives?

When comparing pyenv-virtualenv and llvm-mingw you can also consider the following projects:

spaceship-prompt - :rocket::star: Minimalistic, powerful and extremely customizable Zsh prompt

mingw-w64 - (Unofficial) Mirror of mingw-w64-code

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.

w64devkit - Portable C and C++ Development Kit for x64 (and x86) Windows

pyenv - Simple Python version management

msys2

faster-cpython - How to make CPython faster.

cmake-init - The missing CMake project initializer

direnv - unclutter your .profile

MSYS2-packages - Package scripts for MSYS2.

bioconda-recipes - Conda recipes for the bioconda channel.

mxe - MXE (M cross environment)