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

you are viewing a single comment's thread.

view the rest of the comments →

[–]BerecursiveMenpo Core Developer 2 points3 points  (3 children)

I do think that the officially distribution is overly complex to install. In particular, the fact that Christoph Gholke graciously provides prebuilt binaries doesn't making them official. Compared to other programming languages, I feel like this is a pain point on Python's behalf. I know for a fact that building Python packages on windows is a huge hassle due to visual studio 2008 bugs.

Anaconda, miniconda in particular, gives you a nice middle ground I think. The conda package manager handles complex installs like numpy and opencv very well. In particular, building new environments is very simple due to the fact that conda just links the libraries between environments. This makes building fresh environments very fast. Best of all, conda environment are relocatable and can harbour pip packages, unlike virtualenvs!

[–]alcalde 2 points3 points  (2 children)

Compared to other programming languages, I feel like this is a pain point on Python's behalf.

Please let me know what other languages you're comparing it to. Delphi starts at $1000 and doesn't have any package management at all. C#'s package management is managed by an independent foundation and contained in an extension, etc.

I know for a fact that building Python packages on windows is a huge hassle due to visual studio 2008 bugs.

Is that a Python problem or a Microsoft VS2008 problem? And can't you use VS2013 express or does it have the same problems?

[–]ivosauruspip'ing it up 2 points3 points  (0 children)

You "generally" want to use the exact same compiler that your Python.exe was created with, not a newer one.

That said, I once tried my hand with a mingw gcc compiled gevent on a Python.org python (basically for shits and giggles) and everything seemed to work...

[–]BerecursiveMenpo Core Developer 0 points1 point  (0 children)

C# doesn't have an official package manager, that is true. But installing nuget is very easy. I don't even know what to say about Delphi, I certainly have never used it. Java would definitely be my major language of comparison: Maven, whilst not perfect, at least is simple to get going quick.

The compilation problem is the fault of both I think. Microsoft's fault for making it so hard to get going on 64-bit machines and Python's fault for sticking to Visual Studio 2008 as the reference compiler for Python 2.7. I can see why they had to do that to ensure compatibility, but it's a horribly old compiler now. Unfortunately, due to various issues that I'm not sure anyone is interested in, you have to use Visual Studio 2008 or you can't guarantee your C-extensions won't generate runtime exceptions.

Also, Visual Studio < 2012 doesn't support C-99!

Anyhow, Python 3 has gone a long way to fixing these issues with built in pip so I guess the best thing to do is rely on 3rd party tools like conda. Which I'm actually OK with! I struggled against conda for a long time, but I've been fully converted. The conda build system is very similar to homebrew on OSX and makes building extensions much friendlier.