au-delà de haut niveau, d'erreur relatifs à l'importation

Il semble qu'il y a déjà pas mal de questions à propos relatif à l'importation en python 3, mais après être passé par beaucoup d'entre eux je n'ai toujours pas trouver la réponse à ma question.
donc, voici la question.

J'ai un forfait indiqué ci-dessous

package/
   __init__.py
   A/
      __init__.py
      foo.py
   test_A/
      __init__.py
      test.py

et j'ai une seule ligne dans test.py:

from ..A import foo

maintenant, je suis dans le dossier de package, et je

python -m test_A.test

J'ai eu le message

"ValueError: attempted relative import beyond top-level package"

mais si je suis dans le dossier parent de package, par exemple, je lance:

cd ..
python -m package.test_A.test

tout va bien.

Maintenant, ma question est:
quand je suis dans le dossier de package, et je lance le module à l'intérieur de la test_A sous-package comme test_A.test, selon ma compréhension, ..A monte d'un seul niveau, qui est toujours à l'intérieur de la package dossier, pourquoi il donne le message beyond top-level package. Ce qui est exactement la raison qui provoque ce message d'erreur?

  • double possible de Comment faire par rapport importations en Python?
  • ce post n'a pas pour expliquer mon "au-delà de haut niveau," erreur
  • J'ai une pensée ici, de sorte que lorsque vous exécutez test_A.test en tant que module, ‘..' passe au dessus de la test_A, ce qui est déjà le plus haut niveau de l'importation test_A.test, je pense que le package n'est pas le niveau de répertoire, mais combien de niveaux vous importer le package.
  • Je vous promets que vous comprenez tout ce qui est sur par rapport à l'importation après avoir vu cette réponse de stackoverflow.com/a/14132912/8682868.
InformationsquelleAutor shelper | 2015-06-05