darktrym
Fahnenträger
Ich las gerade einen Artikel und konnte nur den Kopf schütteln, wie wenig Substanz und Wissen da mal wieder ins Netz gepustet wurde und das ausgerechnet von einem ehemaligen NetBSD Entwickler und nun FreeBSD Committer. Kurzum, env ein Unixprogramm, welches die Aufgabe hat den passenden Interpreterpfad zurückzugeben, statt absolute Pfade zu verwenden, sollte hier kritisch beleuchtet werden.
Es geht traurigerweise schon damit los, das ein Shebang nie ein Leerzeichen zwischen Ausrufezeichen und Pfad haben sollte/muss. Das wird konsequent wiederholt wobei eine Quelle extra darauf noch hinweist, dass das Quatsch ist.
Dann wird argumentiert, es werde im Path gesucht und schließlich wird irgendeine Version genommen. Genaugenommen ist die Wahl deterministisch, also vorhersehbar. Und genau das ist doch der Sinn des Ganzen. Mehrere Installationen auf der Platte zu haben, wovon der Skriptentwickler nichts wissen sollte und der Endandwender entscheidet stets selbst, was richtig ist.
Fälschlicherweise wird dann mit der Pkgsrc Praxis begründet, das ohne nix gefunden wird weil Python 2.7 eben im Pfad ist aber kein Python. Dazu muss man wissen, dass in Python zwar einige Sprachfeature zurückportiert werden aber einige Bibliotheken eben nicht, selbst innerhalb der Major-Version kommt es da zu Inkompatibilitäten. Daher die Nummerierung hinter dem Interpreter. Von VirtualEnv hat der Schreiber offensichtlich auch nix gehört, wenn er Libs und Installationen vermengt?
Wie schaut nun die Lösung aus?
Genau dafür hat Gott uns alias geschenkt und eine Shell geschaffen um die richtige Versionen selbst anzugeben.
Das vorgeschobene Problem 2 und 3 sind inkompatibel löst man denn mit einem Starter oder baut sein Code komplett als Hybrid auf.
Will der Programmierer es dann doch deutlich machen nur eine Version unterstützen zu wollen, gibts entweder die Möglichkeit eines Abbruch mit Meldung oder der Shebang bekommt ein Suffix. Ein Symlink oder Alias und schon ist die Welt wieder heile.
Wieder einer dieser Artikel zum aufregen, gut dass der Herr nun für Google arbeitet.Google ist ja auch dafür bekannt, wie man schlechten Python Code und krude Skripte schreibt(Android Make).
Es geht traurigerweise schon damit los, das ein Shebang nie ein Leerzeichen zwischen Ausrufezeichen und Pfad haben sollte/muss. Das wird konsequent wiederholt wobei eine Quelle extra darauf noch hinweist, dass das Quatsch ist.
Dann wird argumentiert, es werde im Path gesucht und schließlich wird irgendeine Version genommen. Genaugenommen ist die Wahl deterministisch, also vorhersehbar. Und genau das ist doch der Sinn des Ganzen. Mehrere Installationen auf der Platte zu haben, wovon der Skriptentwickler nichts wissen sollte und der Endandwender entscheidet stets selbst, was richtig ist.
Fälschlicherweise wird dann mit der Pkgsrc Praxis begründet, das ohne nix gefunden wird weil Python 2.7 eben im Pfad ist aber kein Python. Dazu muss man wissen, dass in Python zwar einige Sprachfeature zurückportiert werden aber einige Bibliotheken eben nicht, selbst innerhalb der Major-Version kommt es da zu Inkompatibilitäten. Daher die Nummerierung hinter dem Interpreter. Von VirtualEnv hat der Schreiber offensichtlich auch nix gehört, wenn er Libs und Installationen vermengt?
Wie schaut nun die Lösung aus?
Genau dafür hat Gott uns alias geschenkt und eine Shell geschaffen um die richtige Versionen selbst anzugeben.
Das vorgeschobene Problem 2 und 3 sind inkompatibel löst man denn mit einem Starter oder baut sein Code komplett als Hybrid auf.
Will der Programmierer es dann doch deutlich machen nur eine Version unterstützen zu wollen, gibts entweder die Möglichkeit eines Abbruch mit Meldung oder der Shebang bekommt ein Suffix. Ein Symlink oder Alias und schon ist die Welt wieder heile.
Wieder einer dieser Artikel zum aufregen, gut dass der Herr nun für Google arbeitet.Google ist ja auch dafür bekannt, wie man schlechten Python Code und krude Skripte schreibt(Android Make).