Python

Nikon D3100 und piggyphoto

$ python "list-config.py"  
Model : Nikon DSC D3100 (PTP mode)  
Status : 0  
Port : 4  
Operations : 17  
File Operations : 10  
Folder Operations : 14  
USB (vendor/product) : 0x4b0/0x427  
USB class : 0x0/0x0/0x0  
Library : /usr/lib/x86_64-linux-gnu/libgphoto2/2.4.13/ptp2  
Id : PTP  

main.actions = None  
main.settings.datetime = 1365831834  
main.settings.fastfs = 1  
main.settings.capturetarget = Internal RAM  
main.status.batterylevel = 100%  
main.imgsettings.imagesize = 4608x3072  
main.imgsettings.iso = 100  
main.imgsettings.whitebalance = Automatic  
main.capturesettings.exposurecompensation = 0  
main.capturesettings.flashmode = Auto  
main.capturesettings.f-number = f/4.8  
main.capturesettings.imagequality = JPEG Normal  
main.capturesettings.focallength = 1108869120  
main.capturesettings.focusmode = AF-A  
main.capturesettings.expprogram = Auto  
main.capturesettings.capturemode = Single Shot  
main.capturesettings.focusmetermode = Closest Subject  
main.capturesettings.exposuremetermode = Multi Spot  
main.capturesettings.shutterspeed = 0.2500s  
main.capturesettings.burstnumber = 1065353216  
main.other.5001 = 100  
main.other.5003 = 4608x3072  
main.other.5004 = 1  
main.other.5005 = 2  
main.other.5007 = 480  
main.other.5008 = 1164804096  
main.other.500a = 32786  
main.other.500b = 3  
main.other.500c = 32784  
main.other.500d = 2500  
main.other.500e = 32784  
main.other.500f = 100  
main.other.5010 = 0  
main.other.5011 = 20130413T064354  
main.other.5013 = 1  
main.other.5018 = 1  
main.other.501c = 32785  
main.other.d303 = 1  
main.other.d406 = Windows/6.0.5330.0 MTPClassDriver/6.0.5330.0  
main.other.d407 = 1  

wnfDesktpopkalender.py 0.17

Die Skripte zur Anzeige des Desktpopkalenders unter Kubuntu 11.04 haben nicht mehr richtig funktioniert. Das erzeugte Hintergrundbild konnte unter [Arbeitsflächen-Einstellungen" nicht mehr angezeigt werden, obwohl es von Gwenview ordentlich dargestellt wurde.

Im Skript hatte ich der PIL-Funktion Image.Save() nur den Dateinamen übergeben. Eigentlich soll PIL an Hand der Datei-Erweiterung erkennen, welches Format zu schreiben ist. Aber es wurden neuerdings Jpeg-Dateien geschrieben, obwohl ich einen PNG-Dateinamen angegeben hatte.

  • alt
        self.im.save(dn)  
  • neu
        self.im.save(dn,"PNG")  

XXX-|python-powered-w-100x40|"Download wnfDesktopkalender_Anzeigen](http://downloads.wlsoft.de/wnfdesktopkalender.zip)

VMWare über Konsole steuern

Zum Steuern der VMware Workstation benötigt man das Programm vmrun, welches zur VIX-API gehört.

$ sudo ./VMware-VIX-1.10.3-368992.x86_64.bundle  

Anzeige aller laufenden Maschinen

$ vmrun -T ws list  
Total running VMs: 1  
/media/sdc2/vmware/xp_buero/xp_buero.vmx  

Python-Script zum herunterfahren aller laufenden VMware-Maschinen

#!/usr/bin/env python  
# -*- coding: utf-8 -*-  
#   

import os.path  
import os  
import tempfile  

def vm_shutdown(aDateiname):  
    if (os.path.isfile(aDateiname)):  
        s = 'vmrun stop %s soft' % (aDateiname)  
        print s  
        os.system(s)  
    else:  
    print aDateiname  

def vm_shutdown_all():  
    # Alle laufenden Maschinen auflisten und in Temp-Datei speichern   
    t = tempfile.mktemp()  
    s = 'vmrun -T ws list > %s' % (t)  
    os.system(s)  
    for z in open(t, 'r').readlines():  
        z = z.rstrip('\n')  
    vm_shutdown(z)  
    os.remove(t)  

if __name__ == [__main__]()  
    print "Alle VMwaremaschinen herunterfahren"   
    print "Shutdown all runnung VMware-Machines"  
    vm_shutdown_all()  

KinterbaseDB verursacht Fehler -901

Was in Kubuntu 10.04 noch funktioniert hatte, ruft in Kubuntu 10.10 diesen Fehler hervor:

(Kubuntu 10.10 amd64 - python 2.6 - Firebird 2.5 Super - kinterbasdb 3.2)

kinterbasdb.OperationalError: (-901, 'begin transaction: \n invalid parameter in transaction parameter block\n Table reservation lock type isc_tpb_shared requires table name before in TPB')

Traceback (most recent call last):  
  File "wnf_fib.py", line 60, in <module>  
    db.list_Adr()  
  File "wnf_fib.py", line 47, in list_Adr  
    dt_Adr.execute("SELECT ID,KURZ,STR,TEL1 FROM KO_ADR ORDER BY STR")  
kinterbasdb.OperationalError: (-901, 'begin transaction: \n  invalid parameter in transaction parameter block\n  Table reservation lock type isc_tpb_shared requires table name before in TPB')  

Hier fand ich einige Ausführungen dazu:

Also habe ich zusätzlich einen CustomTPB (transaction parameter buffers) eingeführt.

    def connect(self):  
        self.svc = kinterbasdb.services.connect(host=self.Server, user=self.User, password=self.Passwort)  
        dsn="%s:/%s" % (self.Server,self.Datenbank)  
        self.con = kinterbasdb.connect(dsn=dsn, user=self.User, password=self.Passwort)  
        self.customTPB = ( kinterbasdb.isc_tpb_write + kinterbasdb.isc_tpb_read_committed + kinterbasdb.isc_tpb_rec_version)  
        self.con.begin(tpb=self.customTPB)  
        return True  

Und jetzt funktioniert es wieder.

Entwicklungsumgebung für Python und ZODB einrichten

Aus dem Workshop auf dem Chemnitzer Linuxtag 2010

#für virtuelle Umgebung installieren  
sudo apt-get install python-virtualenv  
#Vorbereitung für ZODB3 installieren  
sudo apt-get install build-essential  
sudo apt-get install python-dev  

#eine virtuelle Umgebung anlegen  
~$ virtualenv test --no-site-packages  

#in den Projektpfad wechseln  
cd test/  

#ZODB3 installieren  
./bin/easy_install ZODB3  

Tags: 

Python-Links

Python, Programmieren macht Spaß

Python in 5 Minuten (für bereits-Programmierer...)

wiki.python.org/moin/GermanLanguage

Etwas Grundwissen aus dem python-forum.de

Programmieren mit Python und Glade

http://docs.python.org/library/json.html

http://docs.python.org/library/subprocess.html

http://pypi.python.org/pypi/simplejson/

Python und Qt

Python und Datenbanken

$ sudo easy_install firebirdsql  

Webprogrammierung mit Python

www.mediasonics.ch

selbst erlitten

Programmbeispiele (nicht von mir)

Seiten