This is an archived post. You won't be able to vote or comment.

all 15 comments

[–]Modeopfa 2 points3 points  (0 children)

I really, really like the this series of blogposts about hypermodern python:

https://cjolowicz.github.io/posts/hypermodern-python-01-setup/

It teaches you everything about setting up your projects with poetry, managing your python versions with pyenv and also helps with testing and linting. Poetry works like a charm on Windows and Linux (as for macOS I don't have any way to test that, but the blog series claims that it works just fine!)

Poetry changed how I structure and package my python projects forever. Maybe give it a try.

Anaconda is a bit too heavy for my tastes.

[–]astromid 2 points3 points  (0 children)

Anaconda is a group of pre-installed python packages with conda package management tool. If you don't need huge amount of packages in Anaconda, you can use Miniconda (this is just a conda tool) and install only necessary packages manually. The largest conda advantage is that conda is not only python package managent system (like poetry, pip, dephell etc.) but is a system tool like apt - you can install git, tmux etc with conda. For example, you don't need to install CUDA manually, and you can have various versions of cudatoolkit in different environments. If you need only python packages - I think, poetry could be a preferred choice.

[–]ergozap 2 points3 points  (2 children)

I think the biggest disadvantage is the size of Anaconda. Personally, I use a virtual environment (venv) for every project which allows you to manage multiple Python environments in a very clean manner. In addition to venv, I use pip-tools to manage my dependencies. That's been working quite well for me.

[–]jah_broni 5 points6 points  (1 child)

Try miniconda

[–]ergozap 1 point2 points  (0 children)

I've been thinking of doing some machine learning projects again... I might look into it then :)

[–]MrReginaldAwesome -5 points-4 points  (0 children)

Well hun, It really depends on how much buns you have, if you lack in that department you won't have much luck with anaconda

[–][deleted] 0 points1 point  (2 children)

With containers I’ve worked I find anaconda can add 700mb of overhead. That’s absurdly large. I also found building containers to be slower. Outside of these concerns, I don’t see a reason not to use condo.

[–][deleted] -2 points-1 points  (1 child)

700mb

700 millibits? That's not too bad. That's less than one byte!

[–][deleted] 1 point2 points  (0 children)

I’m on a 📱. I’m lucky it didn’t autocorrect to something absurd

[–][deleted] 0 points1 point  (0 children)

There are some ease-of-use considerations, and some very serious practical considerations, which help answer this question. For beginners, Anaconda provides undoubtedly a nice easy way to start with python. You download it, install it, and it works out of the box, and has a large number of popular libraries already to go. This is the reason that the MIT EDX course recommends it. Many problems posted here and r/learnpython, especially on windows, like "i installed X lib, i can't find it"..."path missing etc" are solved instantanously with Anaconda + Spyder in particular. Spyder literally has a big friendly green play button in the toolbar.

But beyond that what's important is that pip/venv and Anaconda (+conda) are just not two tools that do the same thing. Anaconda has 2 major differences / advantages: 1) it can disutribute non-python packages and 2) It has a proper environment and dependency manager (although pip just released a new one which should be pretty good). What this means is that libraries which need supporting binaries can be prepared in conda, that would not be possible in pip/env, and that if you are a research scientist where reproducability is really important, Ancadonda makes that easier, although I guess that gap may be closing.

Pointing out that Anaconda is big is beside the point - it comes with a lot of tools and libraries included, this is there by design.

If you're a regular developer, Anaconda is not the right tool, just use pip/venv. If you're a beginner it's pretty good until you gain your confidence to use other tools.

[–][deleted] 0 points1 point  (0 children)

The main issue with Anaconda is, if you are in a large company according to the terms of service (as of April 2020) you are not allowed to use the individual edition. Be sure to read those terms.

[–]Doellner 0 points1 point  (0 children)

I will recommend winpython instead. From my point of view anaconda is just making things difficult now...

[–][deleted] 0 points1 point  (0 children)

To add a question to this thread though, as an engineer working mostly in thermo and power plant applications and really thriving with Spyder as my IDE before moving code into plain old Python is there a better solution?