9
votes

Aucun module nommé Moteur d'application Markdown

Ma structure de répertoire dans l'App moteur est comme ceci:

Traceback (most recent call last):
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver.py", line 2769, in _HandleRequest
    self._Dispatch(dispatcher, self.rfile, outfile, env_dict)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver.py", line 2654, in _Dispatch
    base_env_dict=env_dict)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver.py", line 683, in Dispatch
    base_env_dict=base_env_dict)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver.py", line 1718, in Dispatch
    self._module_dict)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver.py", line 1622, in ExecuteCGI
    reset_modules = exec_script(config, handler_path, cgi_path, hook)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver.py", line 1310, in ExecuteOrImportScript
    exec module_code in script_module.__dict__
  File "/Users/nomadali/jeeqs/git/src/jeeqs.py", line 26, in <module>
    from lib.markdown import markdown
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 676, in Decorate
    return func(self, *args, **kwargs)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 1845, in load_module
    return self.FindAndLoadModule(submodule, fullname, search_path)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 676, in Decorate
    return func(self, *args, **kwargs)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 1717, in FindAndLoadModule
    description)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 676, in Decorate
    return func(self, *args, **kwargs)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 1660, in LoadModuleRestricted
    description)
  File "/Users/nomadali/jeeqs/git/src/lib/markdown/__init__.py", line 161, in <module>
    import preprocessors
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 676, in Decorate
    return func(self, *args, **kwargs)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 1845, in load_module
    return self.FindAndLoadModule(submodule, fullname, search_path)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 676, in Decorate
    return func(self, *args, **kwargs)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 1717, in FindAndLoadModule
    description)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 676, in Decorate
    return func(self, *args, **kwargs)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 1660, in LoadModuleRestricted
    description)
  File "/Users/nomadali/jeeqs/git/src/markdown/preprocessors.py", line 11, in <module>
ImportError: No module named markdown
INFO     2012-02-20 19:53:02,506 dev_appserver.py:2884] "GET /favicon.ico HTTP/1.0" 500 -


3 commentaires

À moins que vous ayez beaucoup de modules tiers, il serait plus simple de supprimer la LIB Dir et de mettre le Dir Markdown à la racine de votre projet. Ensuite, vous n'avez pas besoin de modifier votre chemin.


J'ai beaucoup de bibliothèques réellement.


Vous devez ajouter votre réponse comme réponse à votre question et marquer votre réponse comme bonne réponse. THX.


3 Réponses :


-1
votes

Ce que vous voulez, c'est que Lib soit dans votre pythonPath, les chemins où python are des choses que vous essayez d'importer. Comme vous l'avez découvert, une façon de le faire est d'ajouter liber Sys.Path.

Créer un fichier init .PY n'est pas ce que vous voulez, car cela fait que liber un paquet contenant marque . À ce stade, vous devriez être capable de faire xxx

bien que ce n'est pas la façon recommandée de le faire.


0 commentaires

0
votes

Je crois que cette question est une dupe d'importation de module Python avec pyimport_importmoduleex pour un plugin GEDIT

La réponse:

Si vous souhaitez utiliser Markdown sans la modifier, vous allez devoir le mettre quelque part où la bibliothèque Python l'attend, telle que dans les packages de site /. Sinon, vous devrez la modifier pour utiliser des importations relatives au lieu des importations absolues.

Mise à jour 2 J'ai résolu ce problème en modifiant My Sys.Path in App Moteur:

sys.path.append (OS.Path.Join (OS.Path.DirName (fichier), 'lib'))

Merci à Murat pour l'aide,


0 commentaires

0
votes

Le fichier doit être appelé __ init __. py pour que cela fonctionne.

Ajout du répertoire liber sur le pythonpath fonctionne également.

Si vous souhaitez utiliser Markdown sans la modifier, vous devez le mettre quelque part où la bibliothèque Python l'attend, telle que dans les packages de site /

Ceci est incorrect, APP Moteur possède son propre mécanisme d'importation et seuls les packages explicitement classés sont autorisés à être importés via cette méthode.


0 commentaires