2011-01-17 15 views
2

Gibt es eine Möglichkeit, Python dazu zu bringen, Module aus einem Netzwerk zu lesen?Importieren von Modulen aus dem Netzwerk

Wir haben viele Maschinen und es wäre ein zu großer Aufwand, jede Maschine manuell jedes Mal zu aktualisieren, wenn ich ein Modul ändere, also möchte ich, dass Python die Module von einem Ort im Netzwerk bekommt.

Irgendwelche Ideen?

+0

möglich Duplikat [dynamisch Python-Modul Import] (http://stackoverflow.com/questions/3799545/dynamically-importing-python-module) –

Antwort

2

Hängen Sie Ihren Netzwerkspeicherort in Ihr Dateisystem ein und fügen Sie diesen Pfad zu Ihrem PYTHONPATH hinzu. Auf diese Weise kann Python auf Ihrem lokalen Rechner die Module sehen, die sich am entfernten Standort befinden. Sie kann nicht direkt von Modulen aus der Ferne importieren, wie die Angabe einer JS-Datei in HTML.

+0

I habe das grundsätzlich gemacht aber ohne den antrieb zu montieren. – Jared

+0

Was meinst du 'wie eine js-Datei in html angeben' .. wie ein

1

Während es etwas pathologisch ist, Module über das Netzwerk zu importieren, ist es tatsächlich möglich. Werfen Sie einen Blick auf the source for zipimport, um eine Vorstellung davon zu bekommen, wie es gemacht werden kann.

+0

Können Sie in ein paar Worten sagen, warum das keine gute Idee ist? Ist dies ein Disponibilitäts-Problem oder etwas, das mehr mit der Kernsprache zu tun hat? – WoJ

+0

Sicherheits- und Geschwindigkeitsgründe. Wenn Ihr Netzwerk kompromittiert ist (oder wenn Sie etwas verrückteres tun, wie den Import über das * Internet *), riskieren Sie den Verlust des Servers. Und wenn Sie das Skript mehrmals pro Sekunde ausführen, haben Sie so viel mehr Verkehr über das Netzwerk. –

2

Ich glaube, Sie suchen nach einem verteilten Computing-Framework, wo Sie Code und Daten zu einem Knoten bereitstellen und sie als Aufgabe unter einem Cluster von Clients/Servern/Peers verteilt werden. Überprüfen Sie Pyro, execnet, Parallel Python, Jug und RPyC.

1

Wie ich am Ende tun dies:

Control Panel \ Alle Elemente der Systemsteuerung \ System >> Erweitert >> Umgebungsvariablen >> Systemvariablen >> Neue >> Name = PYTHONPATH, value = \ server \ scriptFolder

Danke an alle für die Hilfe :)

1
sys.path.append(r'\\network\path') 
import module 
Verwandte Themen