2014-07-21 16 views
9

Jak uzyskać dostęp do modułów z innego folderu?Jak uzyskać dostęp do modułu spoza twojego folderu plików w Pythonie?

Oto struktura plików:

/<appname> 
    /config 
     __init__.py 
     config.py 
    /test 
     test.py # I'm here 

chciałem uzyskać dostęp do funkcji z config.py z test.py. Jak to zrobić?
Oto mój import:

import config.config 

Kiedy uruchomić skrypt test.py, to zawsze mówię:

ImportError: No module named config.config 

Czy robię coś źle?

+0

Można użyć 'os.path' shenanigans poruszać swojej ścieżki względnej. http://stackoverflow.com/questions/279237/import-a-module-from-a-relative-path?rq=1 – CoryKramer

Odpowiedz

11

Najprostszym sposobem jest zmodyfikowanie zmiennej sys.path (określa ścieżkę przeszukiwania import):

# Bring your packages onto the path 
import sys, os 
sys.path.append(os.path.abspath(os.path.join('..', 'config'))) 

# Now do your import 
from config.config import * 
2

Dodaj katalog aplikacji do ścieżki wyszukiwania modułów.

Na przykład:

PYTHONPATH=/path/to/appname python test.py 
4

Yo może tylko moduły importu, które są widoczne przez środowisko. Możesz sprawdzić środowisko, korzystając z tego.

import sys 
print sys.path 

Jak widać sys.path to lista, dzięki czemu można do niego dołączyć elementy:

sys.path.append('/path_to_app/config') 

i powinieneś być w stanie zaimportować moduł.

BTW: Istnieje wiele pytań na ten temat.

Powiązane problemy