
Anaconda 5.0 Released - kawera
https://www.anaconda.com/blog/developer-blog/announcing-the-release-of-anaconda-distribution-5-0/
======
sorenjan
> Spaces are no longer allowed in the installation path on Windows.

Seems like a weird regression 16 years after Windows XP shipped with "My
Documents".

I used Anaconda for a while, but I've since moved back to CPython. Most
packages install fine on Windows using pip now, and the ones that don't is
just a download away from
[http://www.lfd.uci.edu/~gohlke/pythonlibs/](http://www.lfd.uci.edu/~gohlke/pythonlibs/).
Using the standard Python distribution is also nicer because of the python
launcher, and it makes .py files executable like .exe and .bat.

~~~
rusk
_> Seems like a weird regression 16 years after Windows XP shipped with "My
Documents"._

Interesting though, that 6 years ago they reverted back to simply "Documents".

In modern windows, essential user paths no longer need have spaces in them.
The persistence of _" Program Files"_ and the hilariously tricky _" Program
Files (x86)"_ are notable however.

~~~
timthelion
What is wrong with spaces in file names? When my wife was doing research for
her thesis she had all the papers she was citing named with the full title of
the paper. Linux handled it fine, and it seemed utterly modern and natural to
me.

~~~
RayDonnelly
It is _very_ easy to write a bash script that completely mishandles variables
containing filenames with spaces, for example:

cp ${FILENAME} /tmp

Here you should have done:

cp "${FILENAME}" /tmp

Also, GNU make, still one of the cornerstones of building C and C++ libraries
(since CMake and Autotools most commonly use that backend) cannot handle
spaces in paths at all well.

~~~
JoBrad
That’s a problem with those tools that, frankly, should have been addressed
long ago. There are ways for script creators to deal with spacing in names,
but spaces have been supported for decades now, on every OS, so it’s silly
that the tools we use every day act like they don’t exist.

~~~
tyingq
That's a problem with the shell, not the tools.

The shell is deciding whether something is one arg or more, and passing the
arg list to the tools.

~~~
JoBrad
I'd include the shell as one of the tools we use on a regular basis. If I use
a command like scp with wildcards in the input path, and the files that are
returned contain colons, for example[0], the fact that the shell doesn't quote
every file with a space or colon in its name before passing it off to scp is a
deficiency in the shell, which gets reflected when scp refuses to copy it.

[0] [https://stackoverflow.com/questions/14718720/how-can-i-
scp-a...](https://stackoverflow.com/questions/14718720/how-can-i-scp-a-file-
with-a-colon-in-the-file-name)

------
milliams
I do like Anaconda and it's a really great way to easily get Python on the
computers of the people I teach. However, I do have some problems with how
they mess about with the Python ecosystem. If you read a tutorial on Python
modules, it will tell you to `pip install`, create a venv etc.

Anaconda have _removed_ the _ensurepip_ module (part of the standard library
since 3.4) which is used during the venv creation to install pip. PEP 453
explicitly recommends that "Even if pip is made available globally by other
means, do not remove the ensurepip module in Python 3.4 or later." to ensure
that the `venv` module works as expected.

The lack of an `ensurepip` module means that trying to create a venv with
`python3 -m venv my_test_venv` gives an error of:

    
    
      Error: Command '['/home/milliams/my_test_venv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
    

People say that this is ok since `conda` is better but I don't want to have to
teach my students the standard tools for Python module development only to
have to say "except if you're using Anaconda...". Especially since the really
shouldn't have to know what distribution they are using. It should be an
implementation detail.

~~~
fredley
This situation is exacerbated by the fact that, for Windows, Anaconda is the
only way to get packages like numpy etc. working without downloading prebuilt
wheels. If pip on Windows worked reliably Anaconda would have no need to
exist.

~~~
BeetleB
To be honest, I never needed Anaconda to use NumPy/SciPy/matplotlib/pandas on
Windows. I get that Anaconda makes it easier for people new to Python. But for
seasoned Python folks, there's really no headache.

NumPy (and I think SciPy) used to be standard Windows installs (as in download
an exe and install it). Pandas was too, but now you can use pip. The only
catch was that you should install 32 bit python instead of 64 (not sure if
that's still the case).

------
makmanalp
Very excited for this. My go-to is still regular old pip and virtualenv, but I
love anaconda for /not/ having to compile MKL / BLAS on my own in every new
environment I use.

Also check out the JupyterLab alpha which comes with this, which is very neat:

[https://channel9.msdn.com/Events/PyData/Seattle2017/BRK11](https://channel9.msdn.com/Events/PyData/Seattle2017/BRK11)
(demo starts around 15:00)

------
skierscott
This adds support for new compilers.

This makes Dask (pure Python paralleization) run 20% faster
[https://twitter.com/mrocklin/status/923581208482721794](https://twitter.com/mrocklin/status/923581208482721794)
according to Matthew Rocklin, the main developer

~~~
kalefranz
Easy availability of gcc 7.2 on CentOS 6 is kind of a big deal.

~~~
tavert
Not that big. A few minutes of following the instructions and you can build it
in a docker container, post it as a tarball that anyone can use without
needing the rest of miniconda to install.

~~~
RayDonnelly
I don't think thats true. Our compilers are complete pseudo-cross compilers
(i.e. with binutils, glibc, kernel headers and their own sysroot) that can be
both hosted on and always target CentOS6. This means software built with them
will run on CentOS6 and will not, by default, pick up your
CentOS6-incompatible headers and libraries in /usr/include and /usr/lib
respectively.

~~~
tavert
None of that requires conda to be able to do. Can also build in a chroot,
without needing an unconventionally configured compiler, if you want to make
your binaries redistributable - which is a requirement some users will have
but not all. "Easy availability of gcc 7.2 on CentOS 6" doesn't require being
able to build for centos 6 from something newer, docker or chroot tools are
fine for that.

------
monkmartinez
I love Anaconda. To me it is the most obvious way to do Python. If you don't
know what is going on with your env exactly, just go to your Anaconda folder
and investigate. I have done some pretty funky stuff just messing around and
have never had problem. Great work!

------
afarrell
Is anyone using conda to manage environments with versions of other
languages/runtimes? For a while, I was using it to maintain different nodejs
and ruby runtimes and package-sets, but stopped around node 6.6.0, mostly
because I never got efficient enough at creating packages to create conda
packages for different ruby or packages other than the interpreters
themselves.

If anyone feels like it, you can run `conda create name=trycondanode --channel
amfarrell nodejs=6.6.0`

~~~
tavert
Have tried for C, C++, Fortran, Julia, and a bit of R. Too many pythonisms
(and requiring a fairly heavyweight miniconda setup to run) for it to work
naturally when you actively don't want to be using any python. I think the
lackluster adoption by any other communities is evidence of "language
independence" not working out as smoothly as claimed.

------
simonw
If I'm fluent with virtualenv and already use it for all of my Mac OS X Python
development, is there a reason I should still consider trying Anaconda?

~~~
pletnes
It ships with intel MKL optimizations for e.g numpy/sciy. That’s a lot of
hassle to get working in a virtualenv, not to mention maintaining several!

MKL is also multicore parallelized out of the box.

~~~
stadeschuldt
Isn't that working on the Mac ootb as well? If I install numpy it links it
against
[https://developer.apple.com/documentation/accelerate](https://developer.apple.com/documentation/accelerate)
which is very close to MKL/OpenBLAS performance.

~~~
pletnes
There are also tons of other libs that apple don’t have equivalents for. E.g
GDAL, libgfortran, and lots of others.

Not sure if Accelerate is multicore ootb?

------
Redoubts
[https://docs.anaconda.com/anaconda/release-
notes](https://docs.anaconda.com/anaconda/release-notes)

------
deepsun
Last time I checked it didn't work with virtualenv. Does it now?

~~~
nnq
It's own environments mechanisms is even better: each environment can have _it
's own separate python version!_

The "miniconda" installer variant is something I even use in production when
on the same server I need to run microservices one written fro Python 2.4,
another for Pythn 2.7+, another for Python 3.3, another for Python 3.6+ etc.

Really, _anyone doing Python should embrace conda envs_ \- they are awesome
and allow skipping the entire "Python 2 or 3" useless discussion and replacing
it with "just use whatever python you want", just specify it clearly... The
whole "2 vs 3" incident would never even have existed if people people
would've had something like Node's NVM or Ruby's RVM, and "conda envs" it's
basically this, only that it combines support for its own special package
formats with this.

~~~
captainmuon
You can do that with virtualenvs, too. `mkvirtualenv -p python3.6` for
example. When you activate that virtualenv, it uses that interpreter version.

~~~
nnq
Can you also _install_ separate python versions this way? like have it
automagically download a precompiled python3.6 for you even if there may not
be a distro package for it.

I don't really like having to depend on the system's python binaries and their
packages, but I don't want to compile my own either. But I do know _most_
people would violently disagree with me on this :)

(I just happen to be _both_ incredibly _lazy_ and _a control freak_ at the
same time :P...)

~~~
afarrell
yes, you just need to find a channel that has that version published, trust
the person maintaining that channel, and do something like `conda install
--channel amfarrell nodejs=6.6.0`

~~~
nnq
I was asking the question _about non-anaconda python_ , aka "plain python with
virtualenv" that I think GP was referring to...

------
jatin2302
Ooh. I really thought a new anaconda movie is coming.!!!

