2017-05-12 4 views
2

I Python3.6 auf Mac OSX 10.12.4Python: Brauchen Sie Hilfe Modul aus einem anderen Verzeichnis importieren

/Documents/PyProjects/modules/ 

In diesem Verzeichnis renne, befindet __init__.py und Pyrime.py. Pyrime.py hat einige Funktionen darin.

/Documents/PyProjects/PE010/ 

In diesem Verzeichnis befindet sich mein Programm: PE010_Summation_of_Primes.py. Ich möchte eine Funktion is_prime in Pyrime.py importieren, um in PE010_Summation_of_Primes.py zu verwenden. Ich dachte, alles, was ich brauchen würde, zu tun, schreiben ist, in PE010_Summation_of_Primes.py:

from modules.Pyrime import is_prime 

Dies funktioniert nicht. Mein Terminal wirft:

Traceback (most recent call last): 
    File "PE010_Summation_of_Primes.py", line 1, in <module> 
    from Pyrime import is_prime 
ModuleNotFoundError: No module named 'Pyrime' 

Python ist die erste Sprache, die ich je gesehen habe, und ich habe es nur für etwa eine Woche bis jetzt gesehen. Ich habe mir viele Dokumente angeschaut, aber für einen Anfänger wie mich war es nicht sehr aufschlussreich.

+0

Sicher sehen Sie sich die [Dokumentation] (https://docs.python.org/3/tutorial/modules.html) die Grundlagen sind ziemlich klar beschrieben. Eines der Dinge in Ihrer Beschreibung zu kommentieren ist, dass Sie den Namen "__init __. Py" respektieren müssen (beachten Sie die zwei doppelten Unterstriche) –

Antwort

0

das System-Pfad zur Laufzeit hinzufügen:

import sys 
sys.path.insert(0, 'path/to/your/py_file') 
import py_file 

es funktioniert!

+0

Das hat funktioniert! Und nachdem ich ein paar mehr Dokumentation gelesen habe, glaube ich, ich verstehe es! Ich danke dir sehr! –

+0

Am meisten Willkommen! (y) –

0

Nun, Python verweist das globale Bibliotheksverzeichnis oder das lokale Verzeichnis beim Versuch, eine Datei zu importieren. Für Dateien in anderen Verzeichnissen als dem lokalen können Sie entweder den Dateipfad zu sys.path hinzufügen oder eine __init__.py Datei in allen Verzeichnissen einschließlich des übergeordneten Verzeichnisses PyProjects erstellen. Versuchen Sie, diese -

from modules.Pyrime import is_prime

So Ihr Verzeichnis wie folgt aussehen wird -

PyProjects 
    -- __init__.py 
    -- PE010 
     -- __init__.py 
     -- PE010_Summation_of_Primes.py 
    -- modules 
     -- __init__.py 
     -- Pyrime.py 

Hoffe, es hilft.

Verwandte Themen