2016-11-17 4 views
0

Ich frage mich, was sind die Nachteile beim Laden von Python-Modulen von einem Netzwerkstandort?Pro/Contra des Ladens von Python-Modulen vom Netzwerkstandort

Ich habe ein paar Dutzend Python-Tools entwickelt und möchte sie jetzt im Team teilen, und auf jedem Computer ist Python27 lokal installiert. Sie haben jedoch nicht alle notwendigen Module, die mein Tool verwendet. Insgesamt kann es insgesamt zwei zusätzliche Module geben, die mein Tool importieren muss. Ich habe beschlossen, diese Module im Netzwerk zu platzieren. Dann in meinem Werkzeug habe ich nur:

sys.path.append('Z:\\pipeline\\site-packages') 
import Shotgun 

Ist das eine schreckliche Idee? Ich finde es super einfach zu verwalten und würde dies lieber tun, als zu versuchen, alle Arten von Paketen auf den Computern der Benutzer zu installieren und was nicht.

Ich nehme an, es wäre nicht so anstrengend, Module von Dutzenden von Künstlern über das Netzwerk zu laden, da eines der Tools geladen ist, muss das Modul nicht mehr mit dem Netzwerk kommunizieren, oder?

Antwort

1

Nun, ist es.

Das Binden des Codes an einen bestimmten Speicherort ist eine ziemlich schlechte Idee, und hier sind nur ein paar Gründe.

  • Wenn Sie nicht über eine Netzwerkverbindung haben, werden Sie nicht in der Lage sein
  • zu importieren Wenn das Netzwerk-Mapping irgendwie ändert, müssen Sie Ihren Code aktualisieren
  • Wenn Sie auf das Modul aktualisieren oder zu reparieren im Netzwerk, werden alle seine Importeure sofort

die betroffenen sind im Moment wie kleine Fragen Sie aussehen könnte, aber: Sie werden nicht importiert werden können, dass, wenn Sie Ihren Laptop vom Netz getrennt wird. Sie müssen die Codeversion (!) Nur aktualisieren, um einen anderen Speicherort zu unterstützen. Sie haben Anwendungen beschädigt, wenn ein Update im Netzwerkmodul eine lokale Aktualisierung des Importeurs erfordert.

Verknüpfen Sie Ihren Code nie mit der aktuellen zufälligen Umgebung.

1

Wie viele Maschinen/Benutzer haben Sie in Ihrem Team? Wie ist die Struktur des Netzwerkstandorts? Wie groß ist die Größe der Dateien (Module), die Sie dort haben? Ist es möglich, dass alle Benutzer versuchen, die Module gleichzeitig zu laden?

Grundsätzlich, wenn Ihr Team klein ist, sollten Sie sich nicht wirklich Sorgen machen. Nicht die beste Lösung (hauptsächlich, weil Sie diese Module einfach mit pip install oder easy_install installieren können, aber wenn Ihr Team größer wird (oder wenn Sie einen Cluster verwenden und versuchen, denselben Code auf 1000-Rechnern gleichzeitig auszuführen) - könnten Sie dort Probleme haben

Sie in Schwierigkeiten geraten könnten, wenn Sie große bekommen

Sie können mehr über distributed file systems lesen, die eine Lösung geben für -.

wenn Ihr Speicher nicht für mehrere Maschinen-Zugang (Caching/Verteilen/RAID) ausgelegt ist. solche Fälle

Verwandte Themen