What's the best way to manage Python versions and environments for a beginner on mac?

This page summarizes the projects mentioned and recommended in the original post on /r/learnpython

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

    Visual Studio Code

  • I've tried a few ways of working with Python and I've not been happy with any of them. Recently, I thought I had the right answer for me, just using the latest version of python from the official website and using venv to spin up virtual environments on a project by project basis. Just last week though, I tried to do a tutorial that needs Python 3.10. Venv doesn't support multiple versions of Python so I tried miniconda. I'm not sure I like minicondaonda, at least, not with VSCode. Apparently, conda is a package manager as well as a version manager, but it doesn't have all packages, so you end up possibly using both conda and pip, which apparently gets complicated. By default, the miniconda base environment is activated when you start a terminal. That seems a bit intrusive somehow because I don't only use this machine for Python. Also the version that miniconda seems to install in the base environment is not the latest version of Python. You can turn this behaviour off, but if you do that, VSCode can't activate any conda environments for some reason. There's also this problem https://github.com/microsoft/vscode/issues/129979, to which the workaround is to change an obscure setting in VScode that apparently breaks other things (although I don't know what). So miniconda and VSCode don't seem to get along well. There is something in the VSCode Python plugin called 'microconda'. I'm not sure what that is and googleing it returns no answers.

  • Tsukasa-credit-card-gag-scam

    A script I made to resemble a joke video I saw on reddit ( https://www.reddit.com/r/luckystar/comments/m8p9ul/tsukasa_wants_your_credit_card_info/ )

  • As a side note, if you use GitHub Actions or a similar CI/CD system, you can use a matrix or equivalent to create builds or run tests on various different operating systems and Python versions, so you might not even need to worry about running multiple Python versions locally. For example, I use that to build releases for multiple platforms, and to run comprehensive test suites in all configurations.

  • 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
  • python-ms

    A Python equivalent to the JavaScript ms package

  • As a side note, if you use GitHub Actions or a similar CI/CD system, you can use a matrix or equivalent to create builds or run tests on various different operating systems and Python versions, so you might not even need to worry about running multiple Python versions locally. For example, I use that to build releases for multiple platforms, and to run comprehensive test suites in all configurations.

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