[GRASS-user] Install package for add-on in /usr/bin/python3

Stefan Blumentrath Stefan.Blumentrath at nina.no
Sat Apr 4 11:56:40 PDT 2020


Hi Robin,

The errors you encountered after setting the python path, occurred because fmask depends on another, non-standard Python package, namely rios (that would have to be added to the PYTHONPATH as well).

Yet, it seems there is some more interest in getting python-fmask (and thus also RIOS) available as a standard python package. See: https://github.com/ubarsc/python-fmask/issues/30
So, your problem might get solved "upstreams".

Meanwhile you could install both packages manually into your standard Python installation as follows:

wget https://github.com/ubarsc/rios/releases/download/rios-1.4.10/rios-1.4.10.zip
unzip rios-1.4.10.zip
cd rios-1.4.10/
sudo python setup.py install
cd ..

wget https://github.com/ubarsc/python-fmask/releases/download/pythonfmask-0.5.4/python-fmask-0.5.4.zip
unzip -q python-fmask-0.5.4.zip  
cd python-fmask-0.5.4/
python setup.py build
sudo python setup.py install

For me (on Ubuntu 18.04) this gives:

$ ipython
Python 3.6.8 (default, Oct  7 2019, 12:59:55) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.13.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import fmask                                                            

In [2]: fmask.__version__                                                       
Out[2]: '0.5.4'

In [3]: import rios                                                             

In [4]: rios.__version__                                                        
Out[4]: '1.4.10'

Cheers
Stefan


-----Original Message-----
From: Robin Kohrs <robin.kohrs at uni-jena.de> 
Sent: tirsdag 31. mars 2020 15:42
To: Stefan Blumentrath <Stefan.Blumentrath at nina.no>
Cc: Markus Neteler <neteler at osgeo.org>; GRASS user list <grass-user at lists.osgeo.org>
Subject: Re: [GRASS-user] Install package for add-on in /usr/bin/python3

Hi Stefan,

thank you very much for the effort and the patience in answering!
I'll definitely give this a try. I already have so many issues on my computer, one more doesn't matter;)

thanks again and best regards,
Robin

Citando Stefan Blumentrath <Stefan.Blumentrath at nina.no>:

> Hi Robin,
>
> You could try setting the GRASS_PYTHON environment variable to your 
> Python installation with fmask.
>
> import os
> os.environ['GRASS_PYTHON'] = '/YOUR/PYTHON/PATH'
>
> As Markus indicates that can cause other issues.
>
> You may also have a look at https://github.com/zarch/grass-session
> for inspiration.
>
> Hope that gives you at least a lead...
>
> Cheers
> Stefan
>
>
> -----Original Message-----
> From: grass-user <grass-user-bounces at lists.osgeo.org> On Behalf Of 
> Robin Kohrs
> Sent: tirsdag 31. mars 2020 09:25
> To: Markus Neteler <neteler at osgeo.org>
> Cc: GRASS user list <grass-user at lists.osgeo.org>
> Subject: Re: [GRASS-user] Install package for add-on in 
> /usr/bin/python3
>
> Hi Markus,
>
> thank you very much for your answer and the help!
> Do you have any idea what I could do to make the fmask-package 
> "locatable" for the python-interpreter that grass is using?
>
> I tried the following options, but I guess I just don't know 
> sufficiently about how python and grass really work together:
>
> My python-script looks more or less like this:
> ---------------------------------------
> #!/usr/bin/env python3
>
> import sys
>
> print("SYS PATH")
> print(sys.path)
> print("")
> print("SYS EXECUTABLE")
> print(sys.executable)
>
> import grass.script as grass
> from rios import fileinfo # that's where it fails from fmask import 
> fmask
>
> ---------------------------------------
>
> That's why I tried until now:
>
> - I created an environment with conda and installed python-fmask via 
> "conda install -c conda-forge python-fmask". The function 
> "fmask_sentinel2Stacked.py" lies in 
> "/home/robin/miniconda3/bin/fmask_sentinel2Stacked.py".
>
> - When I open an interactive python-shell and import fmask and rios 
> and the type: "fmask.__file__" it gives me 
> "/home/robin/miniconda3/envs/fmask/lib/python3.7/site-packages/fmask/__init__.py"
>
> - I then added
> "/home/robin/miniconda3/envs/fmask/lib/python3.7/site-packages/" to 
> the variable PYTHONPATH in my .bashrc
>
> - When I now start the interpreter that grass uses from the command 
> line by typing "/usr/bin/pyton3" I can import fmask and rios
>
> - However when I run the script with grass it always says that there 
> is no package names rios. Moreover the path I added to PYTHONPATH is 
> not printed when it executes "sys.path" in my grass script
>
>
> I'm sorry for this little confusing question. But in case someone  
> has any idea how I could make grass find fmask, would be super highly
> appreciated:)
>
> thanks a lot in advance! Cheers
> Robin
>
> Citando Markus Neteler <neteler at osgeo.org>:
>
>> Hi Robin,
>>
>> On Sat, Mar 21, 2020 at 6:15 PM Robin Kohrs <robin.kohrs at uni-jena.de> wrote:
>>>
>>>
>>> Hi everyone:)
>>> I'm really sorry for this naive question. I'm kind of starting with
>>> GRASS and I just can't find a solution...
>>> The issue is, that I would like to try to write a little GRASS Add-on
>>> and use the python-fmask package. While this package is only
>>> downloadable via conda it always installs into
>>> `/home/user/miniconda3/bin/python3`. Even when I did `conda
>>> deactivate` prior to this.
>>
>> I guess that mixing conda packages and "regular" ones is causing troubles.
>>
>>> When I then have the import statement `import fask` in the
>>> grass-script it always throws an error, saying that fmask is not
>>> installed. When I print the `sys.executable` in the grass-script it
>>> tells me that the interpreter is in `usr/bin/python3`. So I thought
>>> that I'd install the fmask-package in a way that this interpreter can
>>> find it while executing the script. But I just don't know how. I can
>>> add the fmask-path to sys.path, but I don't think this is the
>>> solution. Maybe someone has a pointer what I'm not getting.
>>
>> There is also the environment variable PYTHONPATH which could be set
>> in the session.
>> But again, mixing might cause problems.
>>
>> Now I wanted to check
>> http://pythonfmask.org/en/latest/#downloads
>> but the server is down...
>>
>>> Hope everyone is good these days:)!
>>
>> Good luck everyone,
>>
>> Markus
>
>
>
> _______________________________________________
> grass-user mailing list
> grass-user at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/grass-user





More information about the grass-user mailing list