Python import : AttributeError: 'module' objet n'a pas d'attribut de 'test'

Je pense que c'est stupide de problème, mais je ne peux pas comprendre pourquoi j'ai le

AttributeError: 'module' object has no attribute 'test'

lors de l'exécution de mon test3.py.

Voici mon arborescence du projet :

.
├── __init__.py
├── test3.py
└── testdir
    ├── __init__.py
    └── test.py

Mon test3.py :

#!/usr/bin/python                                                          

import testdir

if __name__ == "__main__":
    print(testdir.test.VAR)

Mon test.py :

#!/usr/bin/python

import os

VAR=os.path.abspath(__file__)

J'ai aussi essayé d'importer mes VAR de cette façon :

from testdir.test import VAR

EDIT: Maintenant celui-ci fonctionne grâce à @user2357112 - mais je voudrais quand même savoir comment faire pour importer l'ensemble de la test.py fichier sans from ... import ... si c'est possible. 🙂

Et j'ai essayé un import ..testdir faire un par rapport à l'importation, mais j'ai eu un SyntaxError.

Et si j'essaie import testdir.test - je obtenir un NameError: name'test' is not defined.

Comment pourrais-je importer ce fichier? Je suis un peu confus.

EDIT bis :

Je m'en excuse, quand j'ai essayé import testdir.test, j'ai aussi modifié print(testdir.test.VAR) à print(test.VAR).

Qui était le problème, mon mauvais.

avec :

#!/usr/bin/python                                                          

import testdir.test

if __name__ == "__main__":
    print(testdir.test.VAR)

Il fonctionne parfaitement, je l'ai bien que l'importation de testdir.test fait test exister seul (et pas testdir.test) dans le champ d'application.

Désolés pour la gêne occasionnée. :S

Est vAR capitalisés comme cela dans votre fichier réel?
Mon mal, vous avez raison. Maintenant from testdir.test import VAR fonctionne, je vous remercie. Mais comment pourrais-je importer le fichier en entier, sans l'aide d'un from ... import ...?
import testdir.test. L'importation d'un package de ne pas charger automatiquement son submodules.
J'ai essayé ceci, mais j'ai eu un NameError.

OriginalL'auteur vmonteco | 2015-06-14