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@uni-jena.de>
Sent: tirsdag 31. mars 2020 15:42
To: Stefan Blumentrath <Stefan.Blumentrath@nina.no>
Cc: Markus Neteler <neteler@osgeo.org>; GRASS user list <grass-user@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@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@lists.osgeo.org> On Behalf Of
Robin Kohrs
Sent: tirsdag 31. mars 2020 09:25
To: Markus Neteler <neteler@osgeo.org>
Cc: GRASS user list <grass-user@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@osgeo.org>:
Hi Robin,
On Sat, Mar 21, 2020 at 6:15 PM Robin Kohrs <robin.kohrs@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@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/grass-user