Script Python

Un article de WikiSigPlus.

(Différences entre les versions)
Jump to: navigation, search
Version du 2 mars 2007 à 14:40
Liofr (Discuter | contribs)
(python et ses modules)
← Différence précédente
Version du 2 mars 2007 à 14:41
Liofr (Discuter | contribs)
(python et ses modules)
Différence suivante →
Ligne 4: Ligne 4:
==python et ses modules== ==python et ses modules==
Le '''téléchargement''' et '''l'installation''' doit prendre en compte le même numéro de version de python.Après installation d'un module ( mysql, geopy...); il faut tester le module en ouvrant une fenêtre par Démarrer|executer|python puis en tapant import suivit du nomduModule si apparrait '''"ImportError:No module named nomduModule"''' alors le module n'est pas installé (voir exemlple ci dessous pour driver MS SQL Le '''téléchargement''' et '''l'installation''' doit prendre en compte le même numéro de version de python.Après installation d'un module ( mysql, geopy...); il faut tester le module en ouvrant une fenêtre par Démarrer|executer|python puis en tapant import suivit du nomduModule si apparrait '''"ImportError:No module named nomduModule"''' alors le module n'est pas installé (voir exemlple ci dessous pour driver MS SQL
-import pymssQl 
 + >>>import pymssQl
Traceback (most recent call last): Traceback (most recent call last):
File "<pyshell#1>", line 1, in -toplevel- File "<pyshell#1>", line 1, in -toplevel-

Version du 2 mars 2007 à 14:41

manifold supporte grace à win32all ou ironpython l'environnement python (os python et modules).LE passage d'un script python lancer depuis le file system de l'os a un script lancer depusi la fenêtre projet de manifold nécessite de mettre dans le fichiers script de manifold les imports au début, puis les def puis enfin notre programme dans def Main(): sans oublier d'indenter le texte avec que des tab ou des espaces .

Sommaire

installer

python et ses modules

Le téléchargement et l'installation doit prendre en compte le même numéro de version de python.Après installation d'un module ( mysql, geopy...); il faut tester le module en ouvrant une fenêtre par Démarrer|executer|python puis en tapant import suivit du nomduModule si apparrait "ImportError:No module named nomduModule" alors le module n'est pas installé (voir exemlple ci dessous pour driver MS SQL

>>>import pymssQl
Traceback (most recent call last): 
 File "<pyshell#1>", line 1, in -toplevel-
     import pymssQl
ImportError: No module named pymssQl

.

  • powershell ne fait pas partie de python mais permet de naviguer facilement en ligne de commande en remplacement de la commande cmd ou command de microsoft (download,microsoft): c'est un shell fournit par microsoft fonctionnnant sous xp sp2 et framework 2.0 et offrant de nombreux outils ( plus de 130 ).

Image:powershell.png

%windir%\System32\WindowsPowerShell\V1.0\powershell.exe  ouvre une fenêtre DOS. 

Powershell est installé si dans regedit se trouve la chaine HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Powershell\1\Install. La commande Help permet de connaitre les autre commandes,les commandes sont des alias bash linux vers commande interne microsoft !!!. ainsi la commande ls permet de voir le contenu d'un répertoire sous window comme le shell bash linux.Powershell peut aussi se lancer a partir de Demarrer|Programmes| windows PowerShel v1.0 |Powershell (flash)

  • Powershell à l 'avantage par rapport a Démarrer|Executer|cmd.exe m^me si tout se fait en ligne de commande.
  • python (web,download).tester la version installé avec Démarrer|Executer|python
  • pywin32 ( anciennement win32all )wiki,download 4.2Mo).Tester avec la commande "import win32com".
>>>  import win32com
  • ez_setup (py),cliquer sur celui ci entraine l installation du fichier PYTHON_HOME\Scripts\easy_install.exe qui va être appeler par easy_install.exe /x/y.egg ou http://w/z.tar.gz.Tester avec la commande "import pkg_ressources"
  • mysqldb supporte de nombreux drivbers (web)
  • ---'MySQLdb(web) est le driver ecrit en python respectant la norme DB-API permettant a partir d'un script python de se connecter à mysql (web ).
>>> import MySQLdb
    conn = MySQLdb.connect (host = "localhost",user = "testuser",passwd = "testpass",     db="test")
    cursor = conn.cursor ()
    cursor.execute ("SELECT VERSION()")
    row = cursor.fetchone ()
    print "server version:", row[0]
    cursor.close ()
    conn.close ()
  • ---win32all peut auss iêtre utilisé pour l'accès au drivers générique de microsoft ADO(wiki)
>>> db=win32com.client.Dispatch(r'ADODB.connection')#
    DSN="DRIVER={MySQL ODBC 3.51 Driver}; Server=127.0.0.1; Database="+databasename+"; UID=root; PWD="
    db.Open(DSN)
    sql_up ='update  xxxx where   xxx'
    db.Execute(sql_up)
  • geoppy permet de géocoder une adresse.il faut préinstaller BeautifulSoup(download) et l implémentation python de json(web) appelé simplejson (web).Télécharger le fichier geopy (download) dans C:\PYTHON24.Aller dans c:\PYTHON24 puis lancer
C:\PYTHON24\SCRIPTS\easy_install.exe ../geopy-0.93-py2.4.egg . 

Image:BeautifulSoup_install0.png Image:simplejson_install0.png Image:geopy_install0.png les 3 modules étant installées; on peut maintenant tester le fonctionnement de geopy par la commande "from geopy import geocoders" et suivre le tutoriel (web).

On peut vérifier la version de python installée depuis window xp ou manifold (flash)

python et manifold

  • Tous les versions python fonctionnent ansi que les interfaces graphiques gtk et autre si celles ci sont installées.
  • Si plusieurs versions python installés,Manifold comme xp n'active qu'une des versions installées.La version active est celle qui s éxecute sous xp en lancant Démarrer|executer|python. Cette version nécessite l'installation du package pywin qui install pyhtoncomxx.dll et pywintypesxx.dll dans C:\Pythonxx\Lib\site-packages\pywin32_system32\. xx est la version de python et peut être égale à 24.

Image:Manifold_python0.png manifold avec python 24

script python

  • manifold propose par défaut lors du choix du langage utilisé un script implémentant le célèbre script hello,Word!.Celui ci ne fait pas appel aux modules qui doivent être initialisées au début du script. Au lieu d'utiliser un module de géocodage de manifold ; on va utiliser le module geopy dont l'installation a été décrite plus haut puis montrer l utilisation de l'api manifold.

default

def Main():
	Application.MessageBox("Hello, World!", "Script")

module python geopy

  • Le module python geopy peut etre appelé depuis manifold pour géocoder une adresse.
from geopy import geocoders 
def Main():
       ve = geocoders.VirtualEarth()  
       place, (lat, lng) = ve.geocode("Microsoft HQ in Redmond, WA") 
       Application.MessageBox(place+" "+str(lat)+" "+str(lng), "Script")

python et usermanual 7x

  • chaque variable du script est un lien vers la documentation pour montrer deux objets principaux: drawing geom et liste d'objets (xxSet).
  • Le modèle objet de manifold se trouve au format png.
def Main():
   Application.MessageBox("Hello, World!", "Script")
   comps=Application.ActiveDocument.componentSet("POINT")
   Application.MessageBox(comps.TypeName,"Drawing")
   i=0
   g=comps.objectSet.Item(i).Geom
   Application.MessageBox(g.ToTextWKT(),"t")#Point Type
   bs=g.BranchSet
   ps=bs.Item(0).PointSet
   poi=ps.Item(0)
   #changement de la valeur du point
   poi.X=710000.704998007 # lon 1.6277
   poi.Y=2600000.12576877 # lat 50.4844
   #ajout d'un nouveau point
   test=Application.NewPoint()
   test.X=770000
   test.Y=2660000
   comps.ObjectSet.Add(Application.NewGeom(0,test))