2011-05-18 4 views
3

Je suit la structure de répertoire:Python - Importation du fichier de sous-paquet

  • /
      package
    • /
      • subpackage/
        • __init__.py
        • file.py
      • __init__.py
      • file.py
    • main.py

/package/subpackage/__init__.py a le code suivant:

from .. import file; 

Il importe /package/file.py comme prévu.

/main.py a code suivant:

from package import subpackage as foo; 
from package.subpackage import file as bar; 

importations Dernière ligne /package/file.py, pas /package/subpackage/file.py. bar .__ nom__ le confirme. Pourquoi? Qu'est-ce qui ne va pas?

Python 2.5.2. Chaque fichier contient

from __future__ import absolute_import; 

au début.

Répondre

6

Rien ne va pas, il fait exactement ce que vous avez dit à:

Lorsque vous importez package.subpackage, que vous exécutez /package/subpackage/__init__.py. Et là vous faites from .. import file. Donc file en package.subpackage est package.file.

0

Parce qu'il importe file à partir de .., comme le dit votre premier extrait.