pyenv-win VS mypy

Compare pyenv-win vs mypy and see what are their differences.

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. (by pyenv-win)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
pyenv-win mypy
37 112
3,932 17,506
6.3% 1.3%
6.1 9.7
7 days ago 2 days ago
VBScript Python
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-win

Posts with mentions or reviews of pyenv-win. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-18.
  • Windows 上利用 VBScript 取得 junction point 的真實路徑
    1 project | dev.to | 29 Mar 2024
  • Managing python projects like a pro!
    2 projects | dev.to | 18 Mar 2024
    Run the below command in the powershell, if you find this blog post to be too old, please follow the steps in the official repository of pyenv-win.
  • My PATH got messed up and not sure how to fix it
    1 project | /r/bashonubuntuonwindows | 6 Dec 2023
    Looks like it’s an open issue with pyenv-win https://github.com/pyenv-win/pyenv-win/issues/469
  • Dev Stuff Distracting Me From Article Writing
    4 projects | dev.to | 19 Sep 2023
    What made this weird was the inconsistency between *NIX and Windows systems. On Windows the Python Launcher is used. This allows you to switch between different Python versions which are registered in the Windows Registry via PEP514 logic. Unfortunately, one of the popular implementations, PyPy, didn't have great support for it. On *NIX systems pyenv made this easy, while on Windows pyenv-win exists but it's currently not able to pull the PyPy mirrors. I wanted a more simplistic way to integrate PyPy into Windows for easy Python Launcher integration. So I started to do something really crazy: write Powershell.
  • Getting started with Python and Playwright
    3 projects | dev.to | 7 Sep 2023
    We then use pyenv which is a command line tool used to manage multiple versions of Python. This is useful if you are working on multiple projects that use different versions of Python. Check out the GitHub readme of the 'pyenv' project for more information on how to install it on your operating system. For windows check out pyenv-win or you can use venv Python's Built-in Virtual Environment.
  • Script does...nothing
    2 projects | /r/batchfiles | 6 Sep 2023
    I have tried my best to research this issue and have not come up with much. It is obvious that its a backend issue right? The guides that I used https://github.com/bmaltais/kohya_ss and https://github.com/pyenv-win/pyenv-win/
  • Installing Python via Windows Store
    1 project | /r/learnpython | 21 Jun 2023
    IMO I prefer pyenv. There is a pywinenv https://github.com/pyenv-win/pyenv-win. Lets you set up multiple python installs with less probability of screwing then up
  • How to Install AnkiBrain
    3 projects | /r/ankibrain | 20 Jun 2023
    The problem seemed to be that powershell won't run scripts by default. https://github.com/pyenv-win/pyenv-win/issues/289 This person had the same issue as me when installing pyenv. After fixing the execution policy the windows installer ran fine. However when I run anki it crashes after a few seconds.
  • Why not tell people to “simply” use pyenv, poetry or anaconda
    7 projects | news.ycombinator.com | 13 Jun 2023
    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

  • Is it safe to update Python to 3.8 for automatic1111? I have other things require 3.8
    1 project | /r/StableDiffusion | 9 Apr 2023
    Or https://github.com/pyenv-win/pyenv-win

mypy

Posts with mentions or reviews of mypy. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-11.
  • The GIL can now be disabled in Python's main branch
    8 projects | news.ycombinator.com | 11 Mar 2024
  • Polars – A bird's eye view of Polars
    4 projects | news.ycombinator.com | 13 Feb 2024
    It's got type annotations and mypy has a discussion about it here as well: https://github.com/python/mypy/issues/1282
  • Static Typing for Python
    1 project | news.ycombinator.com | 27 Jan 2024
  • Python 3.13 Gets a JIT
    11 projects | news.ycombinator.com | 9 Jan 2024
    There is already an AOT compiler for Python: Nuitka[0]. But I don't think it's much faster.

    And then there is mypyc[1] which uses mypy's static type annotations but is only slightly faster.

    And various other compilers like Numba and Cython that work with specialized dialects of Python to achieve better results, but then it's not quite Python anymore.

    [0] https://nuitka.net/

    [1] https://github.com/python/mypy/tree/master/mypyc

  • Introducing Flask-Muck: How To Build a Comprehensive Flask REST API in 5 Minutes
    3 projects | dev.to | 20 Dec 2023
  • WeveAllBeenThere
    1 project | /r/ProgrammerHumor | 7 Dec 2023
    In Python there is MyPy that can help with this. https://www.mypy-lang.org/
  • It's Time for a Change: Datetime.utcnow() Is Now Deprecated
    5 projects | news.ycombinator.com | 19 Nov 2023
    It's funny you should say this.

    Reading this article prompted me to future-proof a program I maintain for fun that deals with time; it had one use of utcnow, which I fixed.

    And then I tripped over a runtime type problem in an unrelated area of the code, despite the code being green under "mypy --strict". (and "100% coverage" from tests, except this particular exception only occured in a "# pragma: no-cover" codepath so it wasn't actually covered)

    It turns out that because of some core decisions about how datetime objects work, `datetime.date.today() < datetime.datetime.now()` type-checks but gives a TypeError at runtime. Oops. (cause discussed at length in https://github.com/python/mypy/issues/9015 but without action for 3 years)

    One solution is apparently to use `datetype` for type annotations (while continuing to use `datetime` objects at runtime): https://github.com/glyph/DateType

  • What's New in Python 3.12
    5 projects | news.ycombinator.com | 18 Oct 2023
    PEP 695 is great. I've been using mypy every day at work in last couple years or so with very strict parameters (no any type etc) and I have experience writing real life programs with Rust, Agda, and some Haskell before, so I'm familiar with strict type systems. I'm sure many will disagree with me but these are my very honest opinions as a professional who uses Python types every day:

    * Some types are better than no types. I love Python types, and I consider them required. Even if they're not type-checked they're better than no types. If they're type-checked it's even better. If things are typed properly (no any etc) and type-checked that's even better. And so on...

    * Having said this, Python's type system as checked by mypy feels like a toy type system. It's very easy to fool it, and you need to be careful so that type-checking actually fails badly formed programs.

    * The biggest issue I face are exceptions. Community discussed this many times [1] [2] and the overall consensus is to not check exceptions. I personally disagree as if you have a Python program that's meticulously typed and type-checked exceptions still cause bad states and since Python code uses exceptions liberally, it's pretty easy to accidentally go to a bad state. E.g. in the linked github issue JukkaL (developer) claims checking things like "KeyError" will create too many false positives, I strongly disagree. If a function can realistically raise a "KeyError" the program should be properly written to accept this at some level otherwise something that returns type T but 0.01% of the time raises "KeyError" should actually be typed "Raises[T, KeyError]".

    * PEP 695 will help because typing things particularly is very helpful. Often you want to pass bunch of Ts around but since this is impractical some devs resort to passing "dict[str, Any]"s around and thus things type-check but you still get "KeyError" left and right. It's better to have "SomeStructure[T]" types with "T" as your custom data type (whether dataclass, or pydantic, or traditional class) so that type system has more opportunities to reject bad programs.

    * Overall, I'm personally very optimistic about the future of types in Python!

    [1] https://github.com/python/mypy/issues/1773

  • Mypy 1.6 Released
    5 projects | news.ycombinator.com | 17 Oct 2023
  • Ask HN: Why are all of the best back end web frameworks dynamically typed?
    4 projects | news.ycombinator.com | 5 Oct 2023
    You probably already know but you can add type hints and then check for consistency with https://github.com/python/mypy in python.

    Modern Python with things like https://learnpython.com/blog/python-match-case-statement/ + mypy + Ruff for linting https://github.com/astral-sh/ruff can get pretty good results.

    I found typed dataclasses (https://docs.python.org/3/library/dataclasses.html) in python using mypy to give me really high confidence when building data representations.

What are some alternatives?

When comparing pyenv-win and mypy you can also consider the following projects:

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

pyright - Static Type Checker for Python

pyenv - Simple Python version management

ruff - An extremely fast Python linter and code formatter, written in Rust.

mise - dev tools, env vars, task runner

pyre-check - Performant type-checking for python.

Poetry - Python packaging and dependency management made easy

black - The uncompromising Python code formatter

hygeia - Python toolchain manager 🐍

pytype - A static type analyzer for Python code

flakehell - Flake8 wrapper to make it nice, legacy-friendly, configurable.

pydantic - Data validation using Python type hints