Je rencontre des problèmes avec mes propres modules remplaçant ceux construits en Python (en particulier le module de journalisation). Voici ma mise en page du projet:Un autre problème d'importation absolue
run.py
package/
__init__.py
logging/
__init__.py
...
run.py
from package import main
main()
package
/__ init__.py
from __future__ import absolute_import
import logging
import logging.config
def main():
logging.config.fileConfig(...)
package
/enregistrement/__ init__.py
class Logging(object):
pass
Comme se trouve maintenant, le code ci-dessus fonctionne. Dès que je tente d'importer la classe d'enregistrement de package.logging comme ceci:
from __future__ import absolute_import
import logging
import logging.config
from package.logging import Logging
def main():
logging.config.fileConfig(...)
Je reçois une erreur:
AttributeError: 'module' object has no attribute 'config'
J'ai lu les notes de version PEP 328 et constaté que les importations absolues être plutôt simple. Malheureusement, je n'ai pas été en mesure de comprendre celui-ci.
Qu'est-ce qui me manque ici?
en utilisant votre exemple semble fonctionner. Cependant, je dois maintenant me référer à la classe Logging en tant que logging.Logging. D'autres tests révèlent que "from .logging import Logging" ne semble pas fonctionner comme le suggère le PEP 328. Je ne comprends toujours pas pourquoi "from package.logging import Logging" ne fonctionne pas. N'est-ce pas une importation absolue? – kierse
quelle version de python utilisez-vous? Si c'est une version plus ancienne (disons 2.4), les importations relatives peuvent ne pas fonctionner, ou du moins, ne pas fonctionner comme prévu. – Soviut
Je cours Python 2.6.2 – kierse