mich würde mal gerne interessieren was ihr in der stdlib an Modulen vermisst und was euch stört.
Folgende Module wären in der stdlib IMHO schön:
- BeautifulSoup
- Docutils
- Ein systemunabhängiges Modul zur Soundverarbeitung
- dateutil
- NumPy
Das fänd ich auch gut, wobei es schon toll wäre, wenn es sowas überhaupt gäbe. Also so was einfaches wie zB winsound, um auf jedem rechner "tondata" abspielen zu können. Es gibt da zwar ein paar, aber die sind alle komplieziert und glaub ich auch nicht so verbreitet/es gibt kein Spitzenmodul...rafael hat geschrieben: [*]Ein systemunabhängiges Modul zur Soundverarbeitung
Code: Alles auswählen
try:
import [Modul]
except:
print "Lade das Modul [Modul] nach"
from urllib import urlretrieve
try:
urlretrieve("[Url zum Modul]", "[Modul].py")
import [Modul]
except:
print "Konnte [Modul] nicht laden, beende"
exit(1)
Code: Alles auswählen
import modulload
modulload.modulload("[Modul]", "[Url zum Modul]")
Bitteschön, hat birkenfeld schon implementiert.pythonist hat geschrieben:und n Modul zum Dynamischen nachladen von Modulen
Die Syntax ist sogar noch besser, da du keine zusätzlichen Funktionen aufrufen musst - es funktioniert einfach transparent.pythonist hat geschrieben:Wär doch besser wenns was wie folgendes gäbe:Code: Alles auswählen
import modulload modulload.modulload("[Modul]", "[Url zum Modul]")
It's not a bug, its a feature!veers hat geschrieben:Öhm das halte ich für sehr mutig. Da kann ja jeder mit entsprechender Kontrolle beliebigen Code einschleusen.
Schnittstelle für den Bundestrojaner?lunar hat geschrieben:It's not a bug, its a feature!veers hat geschrieben:Öhm das halte ich für sehr mutig. Da kann ja jeder mit entsprechender Kontrolle beliebigen Code einschleusen.
So oder so ist es schwierig, Pythoncode richtig "sicher" zu machen, selbst wenn's "kompiliert" ist, kann man's ja wieder dekompilieren und verändern, irgendeinen eigenen Code reinschreiben und wieder kompilieren.veers hat geschrieben:Schnittstelle für den Bundestrojaner?lunar hat geschrieben:It's not a bug, its a feature!veers hat geschrieben:Öhm das halte ich für sehr mutig. Da kann ja jeder mit entsprechender Kontrolle beliebigen Code einschleusen.
Ja. Die Kritik war auch nicht das der Code nicht kompiliert sondern das er nicht signiert ist.BlackVivi hat geschrieben:So oder so ist es schwierig, Pythoncode richtig "sicher" zu machen, selbst wenn's "kompiliert" ist, kann man's ja wieder dekompilieren und verändern, irgendeinen eigenen Code reinschreiben und wieder kompilieren.
Gut mal ein Beispiel, du sitzt... in der Schule und verwendest eine Applikation welche unsichere imports verwendet. Ich sitz auch da und mag dich nicht. Alles was ich jetzt brauche um Code auf deinem Rechner auszuführen ist Zugriff auf das Netzwerk. Davon ausgegangen das die Schule keine teuren Managedswitches oder ähnliches verfügen kann ich per Arp poisoning problemlos alle Verbindungen übernehmen. Dann warte ich bis du Python Code lädst und tausche dann diesen aus.BlackVivi hat geschrieben: Und als Programmierer möcht' ich ja Code in meinen Quellcode einfließen lassen, oder nicht?... Versteh das "Sicherheitsproblem" dahinter nicht... vielleicht kann's mir jemand erklären.
Normalerweise hängt die Sicherheit einer Anwendung ja lediglich von der lokalen Konfiguration ab. Normalerweise hat man über den lokalen Rechner frei verfügen, Sicherheitsupdates zeitnah einspielen, und mittels Firewall und entsprechenden Nutzerrechten Sicherheit schaffen.BlackVivi hat geschrieben:Und als Programmierer möcht' ich ja Code in meinen Quellcode einfließen lassen, oder nicht?... Versteh das "Sicherheitsproblem" dahinter nicht... vielleicht kann's mir jemand erklären.
Zum Beispiel. Du kannst aber auch das Opfer sein: In gutem Glauben importierst du in deiner Anwendung ein Modul über diesem Mechanismus von einem zentralen Server (um z.B. Softwareupdates zu erleichtern). Jetzt bricht jemand in den Server ein, und hat so über den Austausch des Moduls auch automatisch alle Clients unter Kontrolle.BlackVivi hat geschrieben:Gut, im Endeffekt hab ich darüber nachgedacht und bin zu einem ähnlichen Entschluss gekommen wie ihr es mir (wesentlich schlüssiger) erklärt habt.
Als Beispiel, damit ich's versteh... ich lern ja noch:
Ich mach'n supertolles Programm das supertolle Sachen kann, beispielsweise automatisch Dateien umbenennen nach das und das und verteil das in meinem Netzwert/Online. In diesem pack ich so einen Online Import dingens (Entschuldigt den Ausdruck) und der macht erstmal gar nüx, also importiert eine leere .py Datei.
Nach einiger Zeit, wenn's verteilt genug ist, pack ich da wunderschönen schadhaften Quellcode rein und tada, alles putt.