Python und MAC

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
seishin
User
Beiträge: 87
Registriert: Montag 19. Dezember 2011, 16:42

Hi,

wollte mal nach euer Erfahrung zu Python und MAC fragen.
Macht es da eben so viel Spaß wie unter Linux, falls euch solch ein Vergleich möglich ist.
Oder ist es eher eine Qual? Arbeitet ihr mit xCode oder mit einem anderen Editor, so es nicht eclipse ist, interessiert mich dieser, in Vor- und Nachteilen auch sehr.

Evtl. habt ihr auch interessante Links für mich, von denen ihr begeistert seit... weil googlen kann ich selbst... ;) und das mache ich auch, es geht jedoch nichts über interessante Empfehlungen... Danke.

Herzlichen Dank für eure Aufmerksamkeit und eure Zeit.

Beste Grüße
seishin
deets

Python auf Mac & Linux sind sich in weiten Teilen sehr aehnlich. Es gibt 2 markante Unterschiede:

- unter dem mac kannst du mit pyobjc native Mac-Anwendungen programmieren, wenn du magst. Mir gefaellt das ziemlich, und da es viele interessante Frameworks in ObjectiveC gibt programmiert es sich da recht schon.

- dafuer hat man gelegentlich probleme mit den verschiedenen Architekturen unterm Mac (Stichwort Fat Binaries). Ich muss zB pyglet so starten:

Code: Alles auswählen

#!/usr/bin/arch -i386  /System/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6
weil mein System 64 bittig ist, aber pyglet nur mit 32bit klarkommt. Das ist gelegentlich mal nervig.

Xcode ist mir persoenlich ein Graeuel - fuer alle anderen IDE-Diskussionen sei hier auf die Forumssuche verwiesen.
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Was mich am Mac am meisten stört, ist der fehlende Paketmanager. Macports, Fink und Homebrew sind für mich nur workarounds und die Auswahl an Paketen ist einfach deutlich kleiner, das muss man schon sagen. Als ich zum Beispiel versucht habe, die neueste Version von dbg zu installieren (Mac OS 10.5 Leopard), habe ich zuerst Google (ist keine Pkatemanager, ich weiß :P) probiert -> OS-Version zu alt; dann fink, homebrew -> Paket nicht vorhanden oder zu alt (6.x); dann macports -> endlich, es klappt. Dieses rumprobieren kostet Zeit, die ich mit Linux besser nutzen könnte.
deets

Geschmackssache. Klar hat es seine Vorteile, per Paketmanager zu arbeiten. Aber ich habe auch oft genug Probleme (gerade bei Python) mit durch das System vorinstallierten Packages - und komme dann nur durch virtualenv --no-site-packages und selbstkomplierten Libs wie zB lxml aus der Bedroullie. Das ist unter OSX ueblicherweise weniger dramatisch, weil Python da zwar mitkommt - aber wesentlich weniger 3rd-party-libs mitbringt.
lunar

@seishin: Du wirst in der täglichen Arbeit mit Python kaum Unterschiede zwischen beiden Systemen feststellen können, jedenfalls um Welten weniger als zwischen Linux und Windows. Beides sind Unix-Derivate, und folglich gibt es für beide Systeme im Wesentlichen dieselben Tools zur Python-Entwicklung. Eclipse/PyDev, Vim, Emacs, etc. laufen alle auch auf OS X.

XCode dagegen ist keine Python-IDE und eignet sich eher schlecht zur Python-Entwicklung.

@deets: Das hört sich so an, als wäre "virtualenv --no-site-packages" die letztmögliche Notlösung... eigentlich aber ist diese Option Standard bei aktuellen Versionen von "virtualenv". Und selbst in einem virtualenv ohne diese Option, indem die Systempakete also eingebunden sind, kann man diese immer per "pip install -U" innerhalb des virtualenvs aktualisieren. Nimm es mir nicht übel, aber wie bekommst Du da Probleme?!

@derdon: Beim Versuch, die aktuelle Version des Debuggers in einem Fedora oder Ubuntu von 2007 zu installieren, hättest Du dasselbe Problem gehabt. Mehr noch, Du hättest gar keine Pakete gefunden, und selbst mit "./configure; make; make install" herumhantieren dürfen... insofern fällt es mir schwer, hier ein spezielles Problem von OS X zu sehen. Es ist immer schwierig, aktuelle Programme auf veralteten Systeme zu installieren. Vielleicht solltest Du einfach Dein System aktualisieren... und ja, das kostet Geld, aber das sollte für ein Apple-Nutzer eigentlich kein Problem sein, schließlich war Apple schon immer teuer :) Nichts für ungut...
deets

@lunar

vielleicht hat mich einfach nur die macht der gewonheit gestoert, die zerbrochen wurde durch upgrades auf andere ubuntu versionen oder python versionen. sowie unterschiede in der architektur (32/64 bit). aber im grunde sind venvs schon sehr cool (und ich nutze sie auch unter osx natuerlich)

weisst du eigentlich aus dem kopf, ob man venvs kaskadieren kann? also ein basis-venv und dann daraus neue ableiten? das wuerde mir helfen...
seishin
User
Beiträge: 87
Registriert: Montag 19. Dezember 2011, 16:42

Hui, sehr nett von euch das ihr euch Zeit genommen habt um mir zu antworten.
Sehr schön! Da ich irgendwie an so einen Mac gekommen bin werde ich auf diesem wohl ebenfalls (zu Ubuntu) Python verköstigen und freue mich da schon galaktisch drauf.
Und da die Unterschiede zu anderweitigen Unix nicht so großartig sind, fürstlich!

@deets Du schriebst das du Xcode für einen Graus hältst, respektiere ich natürlich, keine Fragen. Das möchte ich auch gar nicht breit latschen. Darf ich dennoch fragen welchen Editor du bevorzugst? Wäre mir eine ehre, dies zu erfahren ohne die Suche belästigen zu müssen... Beruflich arbeite ich im .NET Space und da ist Visual Studio schon ne feine Sache.
Wobei ich dieses ganze Windows Gelumpe privat nicht sehen mag... ;)

Vielen Dank noch mal war mir eine Freude.
Gruß,
seishin
deets

Ich benutze Emacs. Xcode nervt mich kolossal wegen des tausend-fenster-ansatzes - ich will *ein* Fenster, und darin schalte ich um.

Und eine IDE ala VS/Xcode ist IMHO in Python auch weniger sinnvoll. Hauptsaechlich, weil sowas wie refactoring/code-completion bedingt durch die dynamisch natur Pythons eher schlecht funktioniert. Den grossen Gewinn bringt eine IDE dementsprechend nicht. Und der Emacs macht fuer mich einfach alles, was ich will.

Das ist aber hoch geschmaecklerisch, darum endet sowas immer in riesigen Diskussionen - und die haben wir hier alle schon gehabt... darum die Suche.
lunar

@deets: Ich habe keine Ahnung, wusste aber auch nicht wozu das dienen sollte. Lege Dir doch einfach verschiedene "requirements.txt" an (die kannst Du mit geschachtelten "-randeres_requirement.txt" voneinander ableiten). Dann ist das Anlegen eines neuen virtualenvs mit bestimmten Paketen ein Zweizeiler: "mkvirtualenv foobar && pip install -r requirements.txt" (vorausgesetzt, Du verwendest "virtualenvwrapper", was aber ohnehin empfehlenswert ist). Im Allgemeinen sind meine virtualens nicht langlebig, und werden desöfteren gelöscht, neu angelegt, etc. Das ist ja gerade das Gute daran: Man erhält im Handumdrehen frische Python-Umgebungen :)

Zum Testen innerhalb von "virtualenvs" bietet sich übrigens "tox" an. Damit kann man virtualenvs deklarativ in einer INI beschreiben, und automatisch bestimmte Kommandos in diesen ausführen. Ideal für Unittests…

@seishin: Du wirst keine Python-IDE finden, die an das heranreicht, was VisualStudio für C# oder VB.NET bietet. Eclipse/Pydev oder PyCharm kommen dem noch am nächsten.
seishin
User
Beiträge: 87
Registriert: Montag 19. Dezember 2011, 16:42

Das leuchtet mir vollkommen ein!
Bis jetzt kreiere ich wohl auch mit Geany unter Ubuntu und bin damit mehr aus nur annähernd zufrieden und alles andere wäre mir absolut zu viel und zu befremdlich. In dem Zusammenhang.
Dann werde ich mir mal Emacs zu Gemüte führen, herzlichen dank.

Auch für deine Hinweise lunar, Vielen Dank.


Greatz
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

vi, bzw. vim gibts auch als Alternative (wo wir beim "Editor-Krieg" wären) wenn man nach etwas weniger umfangreichem sucht. emacs scheint mir da doch verdammt viel Funktionsumfang zu bieten, den ich bei einem Editor nicht wirklich brauche.

Sollte es doch keiner der traditionellen Unix-Editoren werden, wären Sachen wie GEdit (hat ja einen Mac-Port), TextWrangler (bzw. BBEdit), TextMate (bzw. SublimeText) auch eine Möglichkeit.
lunar

@webspider: Vim hat denselben Funktionsumfang wie Emacs, und beide Editoren kann man beliebig erweitern. Was Vim und Emacs hauptsächlich unterscheidet, sind die Bedienungskonzepte.
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Weswegen auch emacs Tetris eingebaut hat (sowie genug weitere Sachen außer diversen Spielen, die IMO mit einem Editor weniger zu tun haben) und man es bei vim seperat nachrüsten müsste. Ohne Witz, was soll das. Tetris in einem Text-Editor spielen? Was haben die da geraucht?
BlackJack

@webspider: Tetris ist AFAIK nicht eingebaut, sondern halt einfach eine der in ELisp geschriebenen Erweiterungen. Warum nicht wenn das jemand geschrieben und zur Verfügung gestellt hat. Ist ja nun auch nicht so, dass so kleine Skripte nun irgendwie zu viel Platz auf einem aktuellen Rechner weg nehmen würden.

Ich bin vom Emacs damals mal weg gekommen weil Unicode und UTF-8 aufkam, und der Emacs damit am Anfang zumindest so gar nicht richtig klar gekommen ist.
lunar

@webspider: Das ist ein Witz, und eine spielerische Demonstration der Möglichkeiten dieses Editors. Bedenke, dass es in den Anfängen von Emacs ziemlich revolutionär war, dass man einen Editor so weitgehend erweitern konnte. Du musst nicht mit Emacs Tetris spielen, und beim Python-Programmieren mit Emacs ist das Tetris-Feature das Letzte, was einem in die Quere kommt…
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Würdet ihr es auch als Witz abtun wenn ihr euch einen neuen Toaster zulegt und der als Feature einen NES-Emulator eingebaut hat mit dem man Tetris spielen könnte? Es würde einem ja nicht in die Quere kommen und eine interessante Demonstration der Fähigkeiten sein, aber dennoch würde es mich stören.

Und ebenso sehe ich es mit emacs. Diese Erweiterungen und die Philosophie dahinter passen meines Erachtens nicht zum Unix-Ansatz eine Ansammlung kleinerer Werkzeuge zu haben, die man nach Bedarf kombiniert. Von daher würde ich eher zu vi/vim tendieren oder gar noch minimalistischeren Editoren.
deets

Du redest Unsinn. Nur weil etwas *geht* mit Emacs (kanonisches Beispiel http://xkcd.com/378/) heisst das noch lange nicht, dass du es benutzen musst. Und das die readline-lib und Emacs dieselben keybindings haben, und ich damit auf der shell genauso vorgehen kann, wie in meinem Editor finde ich ebenfalls nuetzlich. [edit] soviel zu "passt zu Unix"[/edit]
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Ich mag meine Macs und es macht mir Spaß damit zu arbeiten - auch mit Python. Der fehlende eingebaute Paket-Manager nervt ein bisschen. Ich nutze daher Homebrew als leichtgewichtigere Variante von Macports und habe darüber Python und diverse andere Sachen (z.B. Node.js) installiert. Macports finde ich nicht so gut, denn das versucht, wenn man nicht aufpasst, erst einmal X11 zu installieren, was ewig dauert. "Normale" Programme auf dem Mac kann man aber meist per Drag'n'Drop installieren oder deinstallieren, indem man sie in den Mülleinmer zieht.

Als Editor nutze ich (wie jetzt) meist Textmate, auch wenn ich Macvim installiert hätte und auch eine Lizenz von PyCharm besitze. Eclipse finde ich hässlich und nutze es nur, wenn ich's beruflich für Android-Entwicklung brauche.

Xcode ginge wohl auch, doch damit mache ich nur iOS-Entwicklung. Xcode 4 hat übrigens schon 2010 von einem MDI zu einem einzelnen Fenster gewechselt, Xcode 3 ist veraltet. Die Aussage mit den vielen Fenstern hat sich schon lange erledigt. Für die aktuelle Xcode-Version braucht man allerdings auch das aktuellste OS X.

Allgemein würde ich sagen, Python unter OS X ist problemlos und genau so gut wie unter Linux möglich.

Stefan
seishin
User
Beiträge: 87
Registriert: Montag 19. Dezember 2011, 16:42

Hi sma vielen Dank um den wahrlich höchst interessanten Wink zu Homebrew!
Das sieht seht viel versprechend aus!

Was sagt ihr zu so etwas: http://wiki.geany.org/howtos/osx/running
Eher die Finger von lassen oder sollte so etwas schmerzfrei möglich sein.

Alles Gute,
seishin
deets

Warum probierst du's nicht einfach aus?
Antworten