<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Python on Marco Gabriel Blog</title>
    <link>https://www.marcogabriel.com/tags/python/</link>
    <description>Recent content in Python on Marco Gabriel Blog</description>
    <image>
      <title>Marco Gabriel Blog</title>
      <url>https://www.marcogabriel.com/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
      <link>https://www.marcogabriel.com/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
    </image>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Sun, 25 Aug 2013 12:08:42 +0200</lastBuildDate>
    <atom:link href="https://www.marcogabriel.com/tags/python/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Webserver, simpel</title>
      <link>https://www.marcogabriel.com/posts/621-webserver-simpel/</link>
      <pubDate>Sun, 25 Aug 2013 12:08:42 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/621-webserver-simpel/</guid>
      <description>&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;python -m SimpleHTTPServer
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Der Befehl startet einen Webserver, der das aktuelle Verzeichnis über Port 8000 freigibt.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;~# python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Man kann also nun über &lt;code&gt;http://&amp;lt;adresse&amp;gt;:8000&lt;/code&gt; auf das Verzeichnis zugreifen. Da Python quasi überall vorhanden ist, werden keine weiteren Freigaben oder Software benötigt. Nicht einmal root Rechte braucht man dafür.&lt;/p&gt;
&lt;p&gt;Wer einen anderen Port bevorzugt, kann diesen noch dahinter angeben:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;python -m SimpleHTTPServer [port]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;So etwas ähnliches gibt&amp;rsquo;s auch &lt;a href=&#34;http://www.razvantudorica.com/08/web-server-in-one-line-of-bash/&#34;&gt;in Bash&lt;/a&gt;, die obige Lösung finde ich aber einfacher.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Trac als Hilfsmittel zur Entwicklung</title>
      <link>https://www.marcogabriel.com/posts/462-trac-als-hilfsmittel-zur-entwicklung/</link>
      <pubDate>Tue, 03 Jun 2008 17:23:14 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/462-trac-als-hilfsmittel-zur-entwicklung/</guid>
      <description>&lt;p&gt;Ich habe eben für einen Kunden Trac aufsetzen dürfen, der ein eigenes SVN Repository für&amp;rsquo;s Versionskontrollmanagement betreibt. Ich mag SVN (&lt;a href=&#34;http://subversion.tigris.org&#34;&gt;Subversion&lt;/a&gt;) zur Versionsverwaltung sowieso schon sehr, aber in Verbindung mit Trac ist es ein echtes Dream Team und Entwicklungsbeschleuniger. Teamkommunikation bei der Entwicklung einfach gemacht.&lt;/p&gt;
&lt;p&gt;Wer &lt;a href=&#34;http://trac.edgewall.org/&#34;&gt;Trac&lt;/a&gt; noch nicht kennt, sollte unbedingt mal einen Blick drauf werfen.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Python Scripte mit PyInstaller als .exe verteilen</title>
      <link>https://www.marcogabriel.com/posts/343-python-scripte-mit-pyinstaller-als-.exe-verteilen/</link>
      <pubDate>Sat, 02 Sep 2006 23:45:19 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/343-python-scripte-mit-pyinstaller-als-.exe-verteilen/</guid>
      <description>&lt;h2 id=&#34;wozu-der-aufwand&#34;&gt;Wozu der Aufwand?&lt;/h2&gt;
&lt;p&gt;Es kommt der Tag, an dem man seine Python Scripte ausserhalb seiner &lt;a href=&#34;http://www.marcogabriel.com/Python-Eclipse-Integration.76.0.html&#34;&gt;Entwicklungsumgebung&lt;/a&gt; einsetzen möchte. Von anderen Programmiersprachen kennt man die Möglichkeit, die Programme zu compilieren und diese unter Windows als ausführbare .exe oder .dll Dateien zu verteilen.&lt;/p&gt;
&lt;p&gt;Compilieren im eigentlichen Sinn lässt sich ein Python Script nicht. Man kann jedoch Python Scripte auch in .exe verwandeln und diese verteilen. Der Grund dafür kann sein, daß man nicht überall eine installierte Python-Umgebung voraussetzen möchte oder auch um seinen Quellcode gegen neugierige Blicke oder Änderungen zu schützen. In diesen .exe-Dateien wird dann neben dem Script noch eine Python-Laufzeitumgebung und benötigte Bibliotheken mit eingepackt, so daß alle benötigten Bestandteile dabei sind und das Programm sofort auf dem Zielrechner ausführbar ist.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Django Installation</title>
      <link>https://www.marcogabriel.com/posts/302-django-installation/</link>
      <pubDate>Fri, 30 Jun 2006 22:45:00 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/302-django-installation/</guid>
      <description>&lt;p&gt;Wie ich kürzlich schon schrieb, möchte ich eine Artikelserie über das &lt;a href=&#34;http://www.djangoproject.com/&#34;&gt;Python Web Framework Django&lt;/a&gt; starten. Anfangen möchte ich dabei mit der Installation des Framework auf einem Linux Server, welches wohl auch die am meisten verwendete Kombination sein dürfte.&lt;/p&gt;
&lt;p&gt;Django wurde urspünglich als Grundlage eines kommerziellen Backends (&lt;a href=&#34;http://www.ellingtoncms.com/&#34;&gt;Ellington&lt;/a&gt;) für eine &lt;a href=&#34;http://www.ljworld.com/&#34;&gt;Onlinezeitung&lt;/a&gt; entwickelt und im Juli 2005 als Open Source unter einer BSD Lizenz veröffentlicht. Die Kernkomponenten des Frameworks sind:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Objektrelationale Definition der eigenen Datenmodelle&lt;/li&gt;
&lt;li&gt;Eine eingebaute Administrationsoberfläche für alle Datenmodelle, auf eigene Bedürfnisse anpassbar in Funktion und Design&lt;/li&gt;
&lt;li&gt;Elegante, saubere, aussagekräftige URL Definitionen, keine kryptischen Zahlenkolonnen die sich niemand merken kann (Suchmaschinen und Leser danken!)&lt;/li&gt;
&lt;li&gt;Eigene, leicht zu erlernende und sinnvolle Template-Sprache (inklusive Vererbung von Templates)&lt;/li&gt;
&lt;li&gt;Caching ist bereits eingebaut, aber nur wenn man es möchte und für welche Teile man es möchte&lt;/li&gt;
&lt;li&gt;Internationalisierung von Webprojekten wird direkt unterstützt&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Um diesem Beispiel folgen zu können benötigt man natürlich auch ein paar Dinge. Zum Beispiel sollte man einen Linux Server haben, &lt;a href=&#34;http://www.python.org/&#34;&gt;Python&lt;/a&gt; sollte bereits installiert sein und Grundkenntnisse darin sollte man auch haben. Zumindest hilft es ungemein, die Beispiele ein wenig zu verstehen. Wenn man nicht sicher ist, ob Python bereits installiert ist oder welche Version installiert ist, kann man dies mit einem &lt;code&gt;python -V&lt;/code&gt; herausfinden. Django selbst benötigt mindestens Python 2.3, welches
man in jeder aktuellen Distribution vorfindet. Unter Debian Stable (Sarge) ist es auch schon die Version 2.3, und Sarge ist nun nicht gerade für die neuesten Pakete bekannt. Unter Debian Testing (Etch) ist mittlerweile die sogar weiter verbreitete Python 2.4 zu bekommen.&lt;/p&gt;</description>
    </item>
    <item>
      <title>PyInstaller statt py2exe</title>
      <link>https://www.marcogabriel.com/posts/236-pyinstaller-statt-py2exe/</link>
      <pubDate>Sun, 09 Apr 2006 02:10:14 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/236-pyinstaller-statt-py2exe/</guid>
      <description>&lt;p&gt;Nachdem mich &lt;a href=&#34;http://py2exe.org/&#34;&gt;py2exe&lt;/a&gt; schon öfter geärgert hat und gerade jetzt wieder nicht das tat, was er eigentlich tun sollte habe ich kurzerhand auf &lt;a href=&#34;http://pyinstaller.hpcf.upr.edu/cgi-bin/trac.cgi&#34;&gt;PyInstaller&lt;/a&gt; gewechselt um aus Python-Code direkt ausführbare Programme zu generieren.&lt;/p&gt;
&lt;p&gt;Nicht nur, daß PyInstaller auch unter Linux ausführbare Executables erzeugen kann, er generiert auch wirklich nur eine einzige .exe, die man besser verteilen kann.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cobol und die moderne Welt</title>
      <link>https://www.marcogabriel.com/posts/75-cobol-und-die-moderne-welt/</link>
      <pubDate>Tue, 04 Oct 2005 20:27:00 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/75-cobol-und-die-moderne-welt/</guid>
      <description>&lt;p&gt;Zufällig liefen mir heute Daten über den Weg, die aus einem in Cobol geschriebenen und zugegeben schon etwas älteren Programm stammen. Beim auseinandernehmen der Datenstrukturen stieß ich auf einen für mich ziemlich seltsam anmutenden Datentyp: &lt;code&gt;comp-3&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Stell dir vor, du hast eine gegebene Zahl &lt;code&gt;1234567&lt;/code&gt;, die du &lt;code&gt;comp-3&lt;/code&gt; codiert speicherst. Du gibst also &lt;code&gt;1234567&lt;/code&gt; rein und kriegst hexadezimal &lt;code&gt;0x12&lt;/code&gt;, &lt;code&gt;0x34&lt;/code&gt;, &lt;code&gt;0x56&lt;/code&gt;, &lt;code&gt;0x7c&lt;/code&gt; raus.&lt;/p&gt;
&lt;p&gt;Der Aufbau ist an sich recht leicht: Man packt jeweils eine Ziffer in ein 4-bit nybble (also ein teil-byte) und hängt ganz am Schluß noch mal in 4 bit ein &lt;code&gt;0xC&lt;/code&gt; für positiv oder ein &lt;code&gt;0xD&lt;/code&gt; für negativ an. Klingt logisch, nicht?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Python 2.4.2 &#43; bemerkenswerte Schnipsel</title>
      <link>https://www.marcogabriel.com/posts/70-python-2.4.2-bemerkenswerte-schnipsel/</link>
      <pubDate>Thu, 29 Sep 2005 10:43:26 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/70-python-2.4.2-bemerkenswerte-schnipsel/</guid>
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://www.marcogabriel.com/posts/70-python-2.4.2-bemerkenswerte-schnipsel/python_logo.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;http://www.python.org/2.4.2/&#34;&gt;Python 2.4.2&lt;/a&gt; wurde heute veröffentlicht. Hauptsächlich Bugfixes, trotzdem sollte es in keiner gepflegten Python-Sammlung fehlen :).&lt;/p&gt;
&lt;p&gt;Weitere Python-Schnipsel:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;http://planetpython.org/&#34;&gt;Planet Python&lt;/a&gt;, eine sammlung aggregierter Python Blogs&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://faces.homeip.net/&#34;&gt;Faces 0.4.0&lt;/a&gt;, ein Projektmanagement-Tool geschrieben und programmierbar in Python. Gantt- und Ressource Charts, Ressource-Listen und viele andere Features sind bereits integriert.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.ixi-software.net/content/body_software_mirra.html&#34;&gt;Mirra 0.2.5.7&lt;/a&gt;, ein D OpenGL Framework für Python&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;http://www.elifulkerson.com/projects/telnet-serial-bridge.php&#34;&gt;tsb - Telnet to Serial Bridge&lt;/a&gt;, ein Programm mit dem man einen seriellen Anschluß per Telnet im Netzwerk zur Verfügung stellen kann. Sehr schön für serielle Geräte die an entfernten Rechnern hängen, zum Beispiel bei Telefonanlagen-Gebührenerfassung per serieller Schnittstelle.&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>wxGlade 0.4 freigegeben</title>
      <link>https://www.marcogabriel.com/posts/66-wxglade-0.4-freigegeben/</link>
      <pubDate>Thu, 15 Sep 2005 09:35:53 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/66-wxglade-0.4-freigegeben/</guid>
      <description>&lt;p&gt;Der GUI-Designer &lt;a href=&#34;http://wxglade.sourceforge.net/&#34; title=&#34;wxGlade&#34;&gt;wxGlade&lt;/a&gt; für wxPython / wxWindows ist in der neuen Version 0.4 freigegeben worden. Support für wxPython 2.6 Widgets und die Event Handler wurden verbessert. Give it a try :).&lt;/p&gt;
&lt;p&gt;Screenshots:&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://www.marcogabriel.com/posts/66-wxglade-0.4-freigegeben/wxglade_palette.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://www.marcogabriel.com/posts/66-wxglade-0.4-freigegeben/wxglade_tree.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://www.marcogabriel.com/posts/66-wxglade-0.4-freigegeben/wxglade_property_panel.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://www.marcogabriel.com/posts/66-wxglade-0.4-freigegeben/wxglade_group.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>wxGlade Designer für wxPython</title>
      <link>https://www.marcogabriel.com/posts/50-wxglade-designer-fuer-wxpython/</link>
      <pubDate>Thu, 30 Jun 2005 20:26:58 +0200</pubDate>
      <guid>https://www.marcogabriel.com/posts/50-wxglade-designer-fuer-wxpython/</guid>
      <description>&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://www.marcogabriel.com/posts/50-wxglade-designer-fuer-wxpython/python-powered-small.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;Wie ich vor &lt;a href=&#34;https://www.marcogabriel.com/posts/46-grafische-benutzeroberflaechen-und-python/&#34;&gt;kurzem&lt;/a&gt; schon mal schrieb, erscheint mir &lt;a href=&#34;http://www.wxpython.org&#34;&gt;wxPython&lt;/a&gt; als beste Lösung für mich.&lt;/p&gt;
&lt;p&gt;Nun habe ich sogar einen &lt;a href=&#34;http://wxglade.sourceforge.net/&#34;&gt;GUI Designer für wxPython&lt;/a&gt; gefunden, der das eigentliche Oberflächendesign etwas schneller macht. Noch etwas Beta sieht &lt;a href=&#34;http://wxglade.sourceforge.net/&#34;&gt;wxGlade&lt;/a&gt; jedoch vielversprechend aus und liefert sogar änderbaren Code ab. D.h. man kann seine eigenen Erweiterungen schon mal reintun und die GUI bleibt dennoch editierbar ohne daß die eigenen Erweiterungen überschrieben werden.&lt;/p&gt;
&lt;p&gt;Daneben habe ich ein GUI-Toolkit namens &lt;a href=&#34;http://venster.sourceforge.net/&#34;&gt;Venster&lt;/a&gt; gefunden, das leider nur unter Windows funktioniert, dort aber das beste Look &amp;amp; Feel aufzuweisen hat. Leider ist es so gut wie nicht dokumentiert.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
