[GRASS-dev] Handling of Python scripts on MS Windows

Moritz Lennert mlennert at club.worldonline.be
Mon Apr 14 00:53:18 PDT 2014


On 14/04/14 00:21, Helmut Kudrnovsky wrote:
> Hi Moritz,
>
>> 1) Should GRASS be the same (i.e. feature parity) on all platforms ?
>
> for sure, why not?

Not to single out MarkusM, but just since he formulated it so clearly:

 >On 09/04/14 08:16, Markus Metz wrote:
 >> On Windows, GRASS should behave like a
 >> self-contained GUI application. There were even suggestions to remove
 >> the command line interface completely from winGRASS because it
 >> confuses users.

> keep in mind windows and *nix are working as operating
> systems sometimes in the same way and sometimes in a (quite) different way.
>
> IMHO the discussion is not/should not be about feature parity etc.; it is
> about how to handle/tackle as
> software project these differences how operating systems do their job with
> monolithic/non-monolithic applications, file extensions associations, global
> system variables etc. etc.


So, there is a vision by some that for the reasons of apparent 
"incompatibility" between the way GRASS works and Windows, GRASS has to 
be different on windows. I.e. that GRASS has to become a monolithic 
application on Windows.

I also think that some of the debate comes from the question of whether 
the wxGUI should have a special status or whether it should just be 
treated as one of the hundreds of modules that GRASS offers.


> I try to outline some scenarios with software using/depending on python in
> the windows side ;-)
> of the world which I effectively know in reality:
>
> (a)
>
> software A bundles/embeds python X.x.x
> software B bundles/embeds python X.x.x
>
> they can be installed in whatever order
>
> (b)
>
> software A bundles/embeds python X.x.x
> software B bundles/embeds python Y.y.y
>

[snip]

> (d)
>
> software A installs system wide python X.x.x
> or
> software A installs system wide python X.x.y
> AND
> software B installs system wide python X.x.x
> or
> software B installs system wide python Y.y.y
>
> ...and a lot other variations are already out in the windows world ...
>
> a system wide installation in windows defines the file extension
> associations, global system variables, etc.;
> additionally the applications need maybe the same site-packages or different
> ones (and not always the same versions)
>
> as a system wide installation defines the file extension associations,
> global system variables, the installation order A then B or B then A may
> break the installation of the other software and so on...

As has been mentioned often enough: there is a big difference between 
types of software, between monolithic GUI applications and others.

And AFAIK, no one has suggested that the GRASS installer should just 
install Python system-wide, but rather that a correct Python 
installation would be left to the user, with possible help in the 
installer (e.g. suggesting installation if it detects no installation at 
all, clear documentation on different cases, etc).

> I'm pretty sure, if we - the GRASS project - let potential users in the
> windows world alone to tackle/handle all these challenges of different
> /installations versions etc., we will lose these people ... and this would
> be a really pity!!!

There is quite a large margin between creating a monolithic application 
with everything bundled and leaving the user alone...

To answer Martin's call for concrete action: how difficult would it be 
for you, Helmut, to create a GRASS installer without Python, so that we 
can test that scenario ? I don't have the Windows build toolchain set up 
at the moment, but if it's more work for you than a few lines of code to 
change and command to create a new package, then I'll try to find the 
time to do that.

Moritz


More information about the grass-dev mailing list