2016-05-16 9 views
2

Ich habe mehrere Python-Projekte und jeder von ihnen hat eine Dienstprogrammdatei, alle von ihnen mit den gleichen Funktionen.Verwenden Sie Python-Datei/Funktion über mehrere lokale Projekte

Wie kann ich eine Art lokale Python-Bibliothek einrichten, die ich in alle meine lokalen Projekte importieren kann? Ich weiß, dass Rodeo über einige Funktionen verfügt, mit denen Sie bestimmte Funktionen/Dateien festlegen können, die in mehreren Python-Projekten verfügbar sein sollen. Gibt es einen Weg, das außerhalb des Rodeos zu machen?

Ich will nicht, um eine Bibliothek erstellen, die durch pip verfügbar ist (da das bedeuten würde es jedem Aussetzen)

+0

Sie können ein Paket erstellen und irgendwo in PYTHONPATH platzieren. –

+2

Ihre Annahme über Pip ist nicht wahr. Es unterstützt private Paketquellen, zum Beispiel Git-Repositories. –

Antwort

1

Wenn Sie PyCharm verwenden, können Sie Verzeichnis mit lokalen utils hinzufügen als „content root“ zu projizieren:

File -> Settings -> Project -> Project Structure -> Add content root 

Danach Ihre utils in Projekt zur Verfügung stehen würden, auch wenn sie woanders platziert ist .

Wenn Sie PyCharm nicht verwenden, müssen Sie Ihre externen Dateien irgendwie zum Projektpfad hinzufügen. Zum Beispiel dynamically.

+0

danke @Gerasimov, das ist toll zu wissen. Ich denke, obwohl es nicht auf der Kommandozeile verfügbar sein wird? – user308827

+0

@ user308827 Sie können versuchen, den Pfad zu PYTHONPATH in der Befehlszeile zu verwenden, siehe: http://stackoverflow.com/a/4580120/1113207 –

1

Sie können durch die Schaffung eines Python-Paket eine lokale Python-Bibliothek erstellen. Es ist so einfach wie eine Datei namens: __init__.py, in Ihre utils lib.

Sie können hier mehr über das Konzept der creating a python packages

lesen Und hier about how to write a good __init__.py

zu beenden, ich muss nur die PYTHONPATH erwähnen, und eine fast ähnliche Frage about importint from a parent direcory

Hoffe, es war hilfreich für dich.

+0

Ich denke, die Formatierung verschleierte den korrekten Dateinamen. Du meintest, "__init __. Py". Ich würde deinen Beitrag bearbeiten, aber es wird mich nicht mit diesen wenigen Änderungen lassen. – Nicarus

+0

Danke, @ Nicarus, du hast Recht, ich habe es behoben. – Kings85

Verwandte Themen