2016-04-24 7 views
2

Ich habe die folgende Verzeichnisstruktur:Importieren Klasse von einem anderen Paket

F:. 
│ .gitignore 
│ 
└───Tests 
    │ main.py 
    │ __init__.py 
    │ 
    ├───compare 
    │ │ __init__.py 
    │ │ 
    │ └───process 
    │   process.py 
    │   __init__.py 
    │ 
    ├───lookup 
    │  User.py 
    │  __init__.py 
    │ 
    ├───requestor 
    │  Requestor.py 
    │  __init__.py 
    │ 
    ├───search 
    │  UserSearch.py 
    │  ProductSearch.py 
    │  __init__.py 
    │ 
    └───utils 
      constants.py 
      __init__.py 

Ich bin in der Lage jede Datei/Klasse von main.py wie

from search.UsersSearch import UsersSearchPayLoad 
from search.ProductSearch import ProductSearchPayLoad 
from utils.constants import * 

zu importieren, aber ich kann jede Einfuhr von allen anderen nicht tun Paket wie von search.UserSearch:

from ..utils.constants import * 
from Tests.utils.constants import * 

ich beziehen this zum Verständnis der korrekten Verwendung relativer Importe.

Ich bin mit Python 2.7.11

Antwort

2

Versuchen Zugabe:

import os 
import sys 

sys.path.append(os.path.realpath(os.getcwd())) 

In: Tests/__init__.py

+0

ich diese Zeile hinzugefügt und 'aus ..utils.constants importieren *' Werke in 'search' und' from ... utils.constants import * 'funktioniert in' compare.process'. Oder sollte ich 'import Tests.utils.constants' verwenden. Weil beide arbeiten ?? –

+0

Das ist gut so. Ich möchte, dass du dir das ansiehst: https://www.youtube.com/watch?v=0oTh1CXRaQ0 es hilft viel, alles über Module, Pfade usw. zu verstehen. –

Verwandte Themen