[GRASS-windows] Python collections module
Luigi Ponti
lponti at infinito.it
Wed Feb 10 04:41:25 EST 2010
On 10/02/2010 07:45, Frank Broniewski wrote:
> Hello Luigi,
>
> It seems that your python path is not set. You get yet a different
> error because of this. In your case your test.py should set it
> accordingly like so:
>
> import sys
> import os
>
> #Try to import GRASS GIS Python module
> if "GISBASE" in os.environ:
> osgeo4w_root = os.path.normpath(os.environ["OSGEO4W_ROOT"])
> gis_base = os.path.normpath(os.environ["GISBASE"])
>
> grass_python_path = os.path.join(gis_base, "etc", "python")
> std_python_path = os.path.join(osgeo4w_root, "apps", "Python25",
> "Lib")
>
> sys.path.append(grass_python_path)
> sys.path.append(std_python_path)
>
> if "PYTHONPATH" not in os.environ:
> os.environ["PYTHONPATH"] = grass_python_path + os.pathsep +
> std_python_path
>
> try:
> import grass.script as grass
> except ImportError:
> print os.environ["PYTHONPATH"]
>
>
> This code sets the PYTHONPATH environment variable to your grass gis
> installation directory. If you could execute that code again. If you
> get my mentioned error or nothing at all the code works. I hope this
> isn't too much trouble
Hello Frank and thanks for your reply -- I am also interested in
Python-scripting GRASS.
(Meanwhile I have updated to the new osgeo4w grass package)
Your code above seem to work -- I receive no error. Is the code above
something that needs to go on top of every python/GRASS script in order
for it to work? I was assuming (wrongly, at this point) that those
environmental variables were supposed to be set by a startup script.
As a side note, your previous little script (let us call it test.py)
gives the same error on WinGRASS-6.4.SVN-r40876 (i.e. from yesterday's
standalone installer):
GRASS 6.4.0svn (EurLCC)> python test.py
Traceback (most recent call last):
File "test.py", line 3, in <module>
import grass.script as grass
ImportError: No module named grass.script
Does it mean again python path is not set?
Kind regards,
Luigi
>
>
> Many thanks
>
> Frank
>
> --------------------------------------------------
> From: "Luigi Ponti" <lponti at infinito.it>
> Sent: Tuesday, February 09, 2010 11:23 AM
> To: "Frank Broniewski" <brfr at metrico.lu>
> Cc: "Glynn Clements" <glynn at gclements.plus.com>; "grass-windows"
> <grass-windows at lists.osgeo.org>
> Subject: Re: [GRASS-windows] Python collections module
>
>> On 09/02/2010 08:03, Frank Broniewski wrote:
>>> Hello,
>>>
>>> Thanks for your answer, Glynn. I don't find a python25.dll in my
>>> stock installation, but it works too. I am just a little bit worried
>>> that the shipped version from the osgeo4w installer doesn't work as
>>> expected. When I replace the osgeo4w version with the stock version
>>> everything works.
>>>
>>> Can someone confirm this? Sample code to reproduce my error:
>>> test.py
>>> --------------
>>> import sys
>>> import os
>>> import grass.script as grass
>>>
>>> gives me the below mentioned error. It's because
>>> Python25/Lib/threading.py does:
>>> from collections import deque.
>> Hi,
>>
>> This is what I get on my osgeo4w grass:
>>
>> GRASS 6.4.0svn (AEA_US)> python --version
>> Python 2.5.2
>>
>> GRASS 6.4.0svn (AEA_US)> python test.py
>> Traceback (most recent call last):
>> File "test.py", line 3, in <module>
>> import grass.script as grass
>> ImportError: No module named grass.script
>>
>> Regards,
>> Luigi
>>
>>>
>>> Now I wonder if I should report this as a bug, because reinstalling
>>> osgeo4w doesn't solve the problem. If someone can confirm this I
>>> would report it, but I hesitate. I will test this behavior on
>>> another installation today and I will see if I encounter this error
>>> message again.
>>>
>>> Many thanks
>>>
>>> Frank
>>>
>>> --------------------------------------------------
>>> From: "Glynn Clements" <glynn at gclements.plus.com>
>>> Sent: Monday, February 08, 2010 9:11 PM
>>> To: "Frank Broniewski" <brfr at metrico.lu>
>>> Cc: "grass-windows" <grass-windows at lists.osgeo.org>
>>> Subject: Re: [GRASS-windows] Python collections module
>>>
>>>>
>>>> Frank Broniewski wrote:
>>>>
>>>>> I am using the osgeo4w installation and I want to use the python
>>>>> scripting
>>>>> possibilities.
>>>>> When I try to import the grass module I get an ImportError "No
>>>>> module named
>>>>> collections" from "C:\OSGeo4W\apps\Python25\lib\threading.py".
>>>>> And indeed there is no collections.py. When I look into my Python26
>>>>> installation dir, there is a collections.py in Python26\Lib. Is
>>>>> the osgeo4w
>>>>> python package broken? Reinstalling does not fix the missing
>>>>> collections
>>>>> module.
>>>>> I appreciate any help with this problem
>>>>
>>>> The Python documentation says that the collections module was added in
>>>> 2.4.
>>>>
>>>> I have both Python 2.5 and Python 2.6 installed on Windows (both are
>>>> the stock python.org versions). 2.5 doesn't have a collections.py, but
>>>> "import collections" works from the IDE. AFAICT, the collections
>>>> module is built into python25.dll.
>>>>
>>>> --
>>>> Glynn Clements <glynn at gclements.plus.com>
>>>
>>> _______________________________________________
>>> grass-windows mailing list
>>> grass-windows at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/grass-windows
>>>
>>
> _______________________________________________
> grass-windows mailing list
> grass-windows at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/grass-windows
>
More information about the grass-windows
mailing list