3 ms·
I would strongly recommend to use conda because: - It would work the same way on Windows, Linux and macOS - Most importantly (!), it is not a Python package m
by aldanor 6y ago
I would strongly recommend to use conda because:
- It would work the same way on Windows, Linux and macOS
- Most importantly (!), it is not a Python package manager. That is, if a package needs BLAS or MKL or HDF5 or whatever else, you won't be crossing fingers and hoping your system-installed version would work for all your venvs; instead, those binary libraries are properly managed per environment.
Pro tip: use mamba instead of conda to get a free 4x speed boost.
- theelous3 6y agoAh yes, all of those noobs who need weird numpy extensions and highly domain oriented and specific odd data storage formats. That's the generalisation part I mentioned. The distinction you're making is non-trival for a wee noobie. Better they get the ground work in and expand to where they need to go.
- aldanor 6y agoOne of the things most noobs will install first is pandas. Pandas needs numpy. Numpy needs lapack, blas etc, even if they're not aware it. Yes, there's wheels, but that's limited to python-only stuff. Then they're reading on some blog about protobuf, or hdf5, or arrow or whatever, and want to use it - but using either from Python needs installed C libraries. On linux/macos you'll need to dig into your package managers and then hope things are compatible, on Windows it's a complete pain. In conda, they can just 'conda install h5py' or whatever, and get proper hdf5 installed without having to figure out the nitty gritty details.
- theelous3 6y ago> most noobs Well, already I can tell you're disconnected from what "most noobs" are actually like. Presumably you think "most noobs" are data scientists, which just isn't the case in my experience.
- aldanor 6y ago> Presumably you think "most noobs" are data scientists, which just isn't the case in my experience It is the case in my personal experience though. I don't think I'm disconnected from what 'noobs' are as I've taught a lot of them through my line of work. Assume you're a noob and are exploring Python package universe, fire a new private tab and google 'most popular python packages'; in my case the first 3 links are: - https://www.activestate.com/blog/top-10-must-have-python-packages/ https://www.activestate.com/blog/top-10-must-have-python-pac... - https://www.ubuntupit.com/best-python-libraries-and- https://www.ubuntupit.com/best-python-libraries-and- packages-for-beginners/ - https://www.edureka.co/blog/python-libraries/ https://www.edureka.co/blog/python-libraries/ All of which list numpy, pandas and the rest e.g. tensorflow and friends.
- rowanG077 6y agoConda is one of the most vile pieces of software I have ever used and recommending beginners to take on that dragon sounds like complete insanity to me. Please let them actually use python before sending them into tooling hell.
- aldanor 6y agoI'm not a huge fan of conda either but your comment is not very constructive without either providing concrete examples of what you mean, or explaining your 'complete insanity' claim. I don't personally see how helping newcomers easily maintain environments with versioned C libraries in them is vile or insane. If you're just writing "a=b+c"-level Python scripts, or scrambling together tiny flask/django apps, or whatever else, you probably don't care indeed. If you're doing/learning any kind of data-science-related stuff, that requires tons of C extensions and libraries. And many 'noobs' learn Python in order to use pandas/numpy/torch/whatever else is hot these days.
- rowanG077 6y agoYou are right. My comment is colored by the countless times I have tried conda and it was one of the worst experiences I have ever had with software. Of all the times I have tried conda only once was it as easy as following the guide they post. The other times it was completely broken. I also greatly dislikes that it pollutes your default environment. Imagine if every piece of software would do that.