> From: Vernon Cole
> 
> That being the case, I tried a Google search for "arcgis 
> python" and got a number of links, including this one from ESRI.
>
http://support.esri.com/index.cfm?fa=knowledgebase.techarticles.articleS
how&d=30028
> I have not downloaded the slideshow, but I am guessing that 
> it will answer your questions.

That slideshow deals with ArcGIS' internal use of Python as 
a scripting language for geoprocessing, which unfortunately 
(AFAIK) has little to do with using ArcGIS' COM capabilities.

> On Sat, Nov 7, 2009 at 10:20 PM, Ti Crossman 
> <ti.cross...@myfairpoint.net> wrote:
> 
> 
>       Hello, all.  I have a need to create application 
> extensions for ESRI ArcGIS geographic information system 
> software.  ArcGIS is built from the ground up using COM 
> technology.  Supposedly, one can program against the 
> (absolutely enormous) ArcObjects object model with any 
> COM-compliant language.

Indeed, I have been doing so with Python for some years.

>  From what I understand, that 
> includes Python -- with the pywin32 extensions, of course.  

Unfortunately not, as much of the ArcObjects object model 
doesn't have the Dispatch support that pywin32 requires :-(

However ctypes+comtypes can be used to access most of 
ArcObjects (certainly all that I've tried).

> Now, the real trick here is that the extension must be 
> compiled into a DLL (and must implement the IExension 
> interface) for ArcGIS to recognize it as an extension.

I've never had the need to go that far, and so don't know 
much about that.  I wonder whether it is in fact a DLL that 
ArcGIS requires, or just a type library - keeping in mind 
that DLLs can contain type library information, so that 
a "type library only" DLL might be sufficient (if such a 
thing is possible).  If so, it might be possible to use 
Python to create COM objects with such a "type library only" DLL.

You can probably go a long way just with building COM objects 
in Python and writing VBA wrappers to call them.

>       So, making the whopping assumption that I can pull off 
> such a coding feat with Python (2.5.1 in this case), I have 
> one main question:  is there a way to compile my Python code 
> into a DLL that will work for me?

Can't really address the DLL building issue, but I wouldn't think
that Python 2.5.1 is necessarily an absolute requirement, 
though there might be circumstances where it would be prudent...
(to avoid trring to load multiple runtimes into the same 
process).

There is a faint chance that someone with some serious skills 
could use something like Pyrex or Cython (on top of the MinGW32
toolchain) to create the DLLs you're talking about - even if just to 
write an extension that embeds Python.

-------------------------> "These thoughts are mine alone!" <---------
Andrew MacIntyre           National Licensing and Allocations Branch
tel:   +61 2 6219 5356     Inputs to Industry Division
fax:   +61 2 6253 3277     Australian Communications & Media Authority
email: andrew.macint...@acma.gov.au            http://www.acma.gov.au/ 

If you have received this email in error, please notify the sender immediately 
and erase all copies of the email and any attachments to it. The information 
contained in this email and any attachments may be private, confidential and 
legally privileged or the subject of copyright. If you are not the addressee it 
may be illegal to review, disclose, use, forward, or distribute this email 
and/or its contents.
 
Unless otherwise specified, the information in the email and any attachments is 
intended as a guide only and should not be relied upon as legal or technical 
advice or regarded as a substitute for legal or technical advice in individual 
cases. Opinions contained in this email or any of its attachments do not 
necessarily reflect the opinions of ACMA.
_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to