J'ai ce problème et ça me gêne! Je développe donc ma première vraie application Google App Engine et j'aime toujours découvrir des choses tout en écrivant des tests.Nez/Nosegae: Problèmes d'importation
J'ai donc la configuration suivante:
J'ai un virtualenv avec nez, nosegae, webtest et gaetestbed. Ça s'appelle porksvr.
activer mes virtualenv comme ceci:
source porksvr/bin/activate
Pour exécuter nez-je utiliser la commande suivante:
nosetests --with-gae --gae-lib-root /home/fs/gae
Cela me donne l'erreur suivante
DEBUG: Access to module file denied:
/home/fs/work/gaecode/porksvr/lib/python2.6/site-packages/webtest
Donc au début Je pensais "ok, le nez exécute l'application dans le 'contexte' du dev_appserver donc il ne sait pas w à propos du webtest ". Mais pour être sûr que j'ai créé un nouveau répertoire et ajouté une petite application GAE. Il est à seulement 3 fichiers:
-main.py
-app.yaml
-test_huh.py (importations module webtest.)
Maintenant, ce qui m'a vraiment confus est que cela fonctionne. Je cours les cms nosetests et il passe mes tests.
J'ai donc commencé à creuser dans mon application pour trouver ce qui pourrait être différent, mais j'ai vraiment frappé un mur. J'ai d'abord pensé que cela pourrait être un problème d'autorisation puisque l'erreur dit "accès ... refusé" mais je ne pouvais pas vraiment trouver quelque chose de spécial. Ensuite j'ai pensé que c'était peut-être parce que j'avais créé mon application avant le virtualenv mais je ne pouvais pas vraiment voir comment cela pouvait être un problème.
Donc, si quelqu'un a une idée pourquoi cela arrive, je serais vraiment reconnaissant.
J'ai récemment trouvé ce qui pourrait être un problème plus profond avec NoseGAE, 'dev_appserver.py' et (de toutes choses) le module python' imp'. Vous pouvez le reproduire à partir de mon [Gist Repo] (https://gist.github.com/883676#file_readme.md). Fondamentalement, il semble que le module 'imp', qui' dev_appserver.py' (et donc le plugin NoseGAE lui-même) tous deux s'appuient lourdement, ne se comporte pas exactement parallèlement aux importations standard de python.Cela a malheureusement l'effet secondaire que les instances de module dans 'sys.modules' ne reçoivent pas toujours des attributs pointant vers leurs modules enfants. Il en résulte des problèmes d'importation confus et imprévisibles. –