2013-05-13 1 views
3

J'ai la structure de dossier suivant
Django importer un fichier à partir d'un autre paquet

 
app/ 
app/helpers/ 
app/helpers/methodhelper.py 
app/methods/ 
app/methods/method.py 

et je suis en train d'importer une fonction de methodhelper.py à l'intérieur method.py
donc j'essayé ce qui suit:

 
import app.helpers.methodhelper 
OR 
from app.helpers.methodhelper import function1 
OR 
import helpers.methodhelper 

et je reçois:

"No module named app.helpers.methodhelper" 

Important à noter: helpers/__init__.py existe déjà

Comment cela devrait-il être fait?

+0

Je reçois cette erreur quand je vais dans app/methods avec la console et exécute "python -i method.py" – Asaf

+0

Est-ce que 'app/__ init __. Py' existe? – orokusaki

+0

que diriez-vous de 'from helpers.methodhelper import function1', je devine, le problème est avec la manière dont' manage.py' est défini – karthikr

Répondre

2

Le chemin par défaut de votre projet Django se trouve dans le répertoire racine du projet (où se trouve le fichier manage.py). Vous pouvez ajouter les sous-répertoires ci-dessous que votre PYTHONPATH (facilement fait en ajoutant à sys.path) ou vous pouvez importer cette fonction en utilisant le chemin complet du module:

from projectname.app.helpers.methodhelper import function1

Quand je commence un projet Django, J'ajoute toujours

PROJECT_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))

à mon settings.py. Ce chemin ressemble à /home/kyle/django_project_name/. A l'intérieur, directement manage.py.

De là, aussi dans mon settings.py, je comprennent:

sys.path.append(os.path.join(PROJECT_ROOT, 'django_project_name'))

Cela fait mes applications importable sans la nécessité d'inclure mon nom de projet dans le chemin du module.

+0

Oui, 'à partir de app.helpers.methodhelper import function1' devrait fonctionner, je viens de le tester. – DrKaoliN

+0

il semble que ma console Eclipse n'inclut pas le PYTHONPATH dans le projet, bizarre ... ça marche maintenant quand j'utilise KDE Konsole .. des idées pour ajouter automatiquement le chemin dans la console Eclipse? – Asaf

+0

@Asaf est la console Eclipse juste un REPL python? Si oui, vous pouvez simplement importer sys et ajouter à sys.path – Kyle

Questions connexes