Dans mon répertoire python de travail je crée:Pourquoi je ne peux pas appeler packagename.modulename.foo()?
packagename/__init__.py
packagename/modulename.py
test.py
En modulename.py je crée une classe vide:
class Someclass(object):
pass
dans test.py:
import packagename
packagename.modulename.Someclass()
Pourquoi je peux » t appelez packagename.modulename.someclass() dans test.py?
AttributeError: 'module' object has no attribute 'modulename'
Je comprends que le droit chemin est:
import packagename.modulename
ou
from packagename import modulename
Mais je ne comprends pas pourquoi je reçois cette erreur dans mon cas.
Mise à jour:
En d'autres termes, est-il possible d'importer le contenu d'un paquet avec tous les modules dans l'espace de noms distincts? J'ai besoin expression correcte pythonique pour:
from packagename import * as mynamespace
J'ai besoin de lister les modules de tous les paquets dans le fichier nomdupaquet/__ init_.py, n'est-ce pas? Je pense que j'ai besoin d'une expression python correcte pour "from packagename import * as mynamespace". – Alex
Je pense que ça s'écrit simplement 'importer le nom du paquet sous monnamespace'. –